`
weiyuhu
  • 浏览: 231100 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

c语言编程之字符串操作

阅读更多
   1. //在s串中查找与s1相匹配的字符串,找到后用s2将s中与s1相配的串替换掉  
   2. #include<stdio.h>  
   3. #include<string.h>  
   4.   
   5. void replace(char *s,char *s1,char *s2);  
   6.   
   7. int main(int argc,char *argv[])  
   8. {  
   9.   char s[256],s1[256],s2[256];  
  10.   
  11.   if(argc!=4)  
  12.   {  
  13.     printf("Usage:%s 源串 查找串 替换串\n",argv[0]);  
  14.     exit(-1);  
  15.   }  
  16.   
  17.   memset(s,sizeof(s),0x00);  
  18.   memset(s1,sizeof(s1),0x00);  
  19.   memset(s2,sizeof(s2),0x00);  
  20.   
  21.   strcpy(s,argv[1]);  
  22.   strcpy(s1,argv[2]);  
  23.   strcpy(s2,argv[3]);  
  24.   
  25.   replace(s,s1,s2);  
  26.   printf("%s\n",s);  
  27. }  
  28.   
  29. void replace(char *s,char *s1,char *s2)  
  30. {  
  31.   char *p,*sp,*dp;  
  32.   int len,cnt;  
  33.   
  34.   for(;;)  
  35.   {  
  36.     if((p=strstr(s,s1)) == NULL) return;  
  37.   
  38.     len = strlen(s2)-strlen(s1);  
  39.     if(len)  
  40.     {  
  41.       //查找串和替换串长度不相同,需移位动作  
  42.       sp=p+strlen(s1);  //从sp所指位置移  
  43.       dp=sp + len;  //移到dp所指位置  
  44.       cnt = strlen(sp) + 1; //所要移动的长度  
  45.       memmove(p+strlen(s1)+len,p+strlen(s1),cnt);  
  46.     }  
  47.     memcpy(p,s2,strlen(s2));  
  48.   }  
  49. }  


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics