C語言如何從字符串數組中找到一個特定的字符串並用一個新的字符串進行替換,要有例程。
比如:有c[]="33.3"d[]="44.4"
在xeb[]={"b221.html?a1=11.1&a2=22.2&a3=0"}中找到a1=和a2=,
然後替換a1=11.1字內容為c[]的中內容產生a1="33.3",替換a2=22.2字內容為d[]的中內容產生a2="44.4",
最後得到xeb[]={"b221.html?a1=33.3&a2=44.4&a3=0"}
最佳回答:
#include <stdio.h>
#include <string.h>
//在orginal_str字符串中,找到dest字符串,
//然後將它後面的字符串替換為src
void replace(char *orig_str, const char *dest, const char*src)
{
char *right_ptr = NULL ;
size_t dest_len = 0 ;
size_t src_len = 0 ;
if( NULL == (right_ptr = strstr(orig_str,dest)) )
{
printf("can not find \"%s\" in \"%s\"\n", dest, orig_str) ;
return ;
}
dest_len = strlen(dest) ;
right_ptr += dest_len ;
src_len = strlen(src) ;
strncpy(right_ptr,src,src_len) ;
}
int main()
{
char xeb[] = "b221.html?a1=11.1&a2=22.2&a3=0" ;
char c[] = "33.3" ;
char d[] = "44.4" ;
replace(xeb,"a1=",c);
replace(xeb,"a2=",d);
printf("after replace,xeb:%s\n",xeb) ;
return 0 ;
}