替换字符串

来源:互联网 发布:linux网络故障排查 编辑:程序博客网 时间:2024/04/29 22:19

1、将一串字符串中的空格转换成@#$.

void conver(char *buf,char *cbuf)   //反着来{    int count,len,newlen,i;    count =0;    len = strlen(buf);    for(i=0;i<len;i++)    {        if(buf[i] == ' ')            count++;   //计算空格数    }    newlen = len + 2*count;  //计算新的字符串长度    printf("len:%d,newlen:%d\n",len,newlen);    for(i=len-1;i>=0;i--)    {        if(buf[i] == ' ')        {            cbuf[newlen - 1] = '$';                cbuf[newlen - 2] = '#';            cbuf[newlen - 3] = '@';            newlen = newlen -3;     //缩尾        }        else        {            cbuf[newlen -1] = buf[i];            newlen = newlen - 1;        }    }}void conver_zhen(char *buf,char *cbuf) //正着来{    int count,len,newlen,i;    count =0;    len = strlen(buf);    for(i=0;i<len;i++)    {        if(buf[i] == ' ')            count++;   //计算空格数    }    newlen = len + 2*count;  //计算新的字符串长度    printf("len:%d,newlen:%d\n",len,newlen);    count = 0;    for(i=0;i<len;i++)    {        if(buf[i] == ' ')        {            cbuf[i+count] = '@';            cbuf[i+count+1] = '#';            cbuf[i+count+2] = '$';            count += 2;              //加长        }        else        {            cbuf[i+count] = buf[i];        }    }}int main(){    char buf[30]={" 12 ff  j k "};    char cbuf[50];    memset(cbuf,0,50);    printf("pre: %s\n",buf);    conver(buf,cbuf);   //反着来    printf("cov: %s\n",cbuf);    memset(cbuf,0,50);    conver_zhen(buf,cbuf);  //正着来    printf("cov: %s\n",cbuf);    return 0;}运行结果:pre:  12 ff  j klen:12,newlen:24cov: @#$12@#$ff@#$@#$j@#$k@#$len:12,newlen:24cov: @#$12@#$ff@#$@#$j@#$k@#$
0 0
原创粉丝点击