C语言中字符替换为字符串(增强版)

之前版本其实只是针对【"】转换成字符串【"】,【'】转换成【'】,即对HTML表单的值中,为了正常显示【"】和【'】而做得一个前处理。

以下函数才是真正实现字符转换为字符字符串的。

char *charTostr(const char *str,const char a,const char *srcrepstr){
  static char p[2];
  int len = strlen(srcrepstr),tmpLen=0;
  char *tmp,*tmpRepStr,*repStr;
  tmpRepStr=(char*)malloc(len);
 repStr=(char*)malloc(len);
 
 while(*str){
  if(*str==a){
   if(repStr!=NULL){
    tmpLen=strlen(repStr);
    repStr=(char *)realloc(repStr,tmpLen+len+1);
    strcpy(repStr,tmpRepStr);
    strcat(repStr,srcrepstr);
    tmpRepStr=(char *)realloc(tmpRepStr,tmpLen+len+1);
    strcpy(tmpRepStr,repStr);
   }else{
    strcpy(repStr,srcrepstr);
    strcpy(tmpRepStr,repStr);
   }
  }else{
   *p=*str;
   if(repStr!=NULL){
    tmpLen=strlen(repStr);
    repStr=(char *)realloc(repStr,tmpLen+1);
    strcpy(repStr,tmpRepStr);
    strcat(repStr,p);
    tmpRepStr=(char *)realloc(tmpRepStr,tmpLen+1);
    strcpy(tmpRepStr,repStr);
   }else{
    strcpy(repStr,p);
    strcpy(tmpRepStr,repStr);
   }
   *p='\0';
   printf("repStr=%s\n",repStr);
  }
  ++str;
 }
 free(tmpRepStr);
 *p = '\0';
 return repStr;
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值