替代字符的问题

来源:互联网 发布:nginx支持rtmp 编辑:程序博客网 时间:2024/05/16 09:31

将一个字符串中的 \ 替换成 \\ 


即 "aaa\\aaa"




"aaa\\\\aaa"
 

 

http://topic.csdn.net/u/20111202/15/77ac6eb8-a1d6-4d9e-bf66-3d3eea940767.html?48829

 

不知为何这个'\'这个字符如果使用此句话不通过。
if(pB[i]=='\') 故而改成'/'
思路:遇到'\'就把后面的字符放入一个指针变量pT存起来。
然后再把pT的内容copy至pB指针里。然后再把pB指针里依次查找'\',位置由sum变量来控制,有多少个'\'由count来控制。

#include "stdio.h"
#include "string.h"
void tidai(char *str)
{
 char temp[128];
 char *ptemp=temp;
 char *pB;
 char str2[128];
 char *pT;
 int j,postion,count=0,k=0,sum=0;
 pB =str;pT=str2;

 for(int i=0;i<strlen(pB);i++)
 {          
  if(pB[i]=='/')
  {  
   k=0;                                      count++;
                                                    sum++;
   postion = i;
   for(j= i;j<strlen(pB);j++)
   {
    pT[k]=pB[j];
    k++;
   }
   pT[k]='\0';
   memcpy(ptemp,pB,strlen(pB));
   while(*pT!='\0')
   {
    ptemp[i+1]=*pT++;
    i++;
   }
   ptemp[strlen(str)+count]='\0'; 
   memcpy(&pB,&ptemp,sizeof(ptemp));
     
   i= postion+sum;
   sum = 0;
   continue;
  }
 }
     printf("%s\n",ptemp);
}


void main()
{
 char test[]="/7///8////9";
 tidai(test);
 
}