指定された長さの文字列を別の文字列の指定された位置-C言語に挿入

2087 ワード

/*******************************************************************************
* @fn      Insert_String 
*
* @brief                          
*
* @param   oldstr     ; instr[]       ;location      ; length        
*
* @return  no
*******************************************************************************/
void Insert_String(char *oldstr, char instr[], int location, uint8_t length)
{
	int  j, k;
	char dat_tmp[100];
	
	for(j=0; j

例:文字列にwifiパスワードとアカウントが格納されており、文字列のパスワードとアカウントを変更する必要があります
char set_wifi[100] = "AT+CWJAP_DEF=\"wifi_name\",\"wifi_pswd\"\r
";// void WiFi_CFG(uint8_t *buf, uint16_t len)// { uint8_t date_len; static char set_wifi_head[100] = "AT+CWJAP_DEF=\"\",\"\"\r
"; char set_wifi_name[20], set_wifi_pswd[20]; static uint8_t name_date_len, pswd_date_len;//wifi , date_len = len; memcpy(Wireless_Data_BLE.RX_data, buf, date_len);//Wireless_Data_BLE.RX_data if(Wireless_Data_BLE.RX_data[0] == 'W')// wifi { memcpy(set_wifi_name, Wireless_Data_BLE.RX_data+2, date_len-2);// wifi name_date_len = date_len-2;//2 Insert_String(set_wifi_head, set_wifi_name, 15, name_date_len);// wifi //Ble_REC_Flag.wifi_name_ok = 1; } else if(Wireless_Data_BLE.RX_data[0] == 'P')// wifi { memcpy(set_wifi_pswd, Wireless_Data_BLE.RX_data+2, date_len-2);// wifi pswd_date_len = date_len-2;//2 Insert_String(set_wifi_head, set_wifi_pswd, 18+name_date_len, pswd_date_len);// wifi //Ble_REC_Flag.wifi_pswd_ok = 1; memset(set_wifi, 0, sizeof(set_wifi)); // wifi strcpy(set_wifi, set_wifi_head);// wifi } memcpy(Wireless_Data_BLE.TX_data, Wireless_Data_BLE.RX_data, date_len);// Wireless_Data_BLE.TX_length = date_len; memset(Wireless_Data_WiFi.RX_data, 0, date_len); // } }