c语言反向字符转换,C语言字符转换解决办法

C语言字符转换

我想把某个字符串里的\都换成\\,怎么弄啊,我试着弄了一下,但它虽然没报错,但运行结果还是不太对,麻烦帮我看看啊,各位~

103137114.jpg

------解决方案--------------------

这已经是俩个字符了都 后面的需要移位

------解决方案--------------------

一开始就把最终的长度计算出来。然后从最后一个开始向前移位。复杂度较低。

------解决方案--------------------

仅供参考:

#include 

#include 

#include 

char s[256];

char *p;

int r,n,i;

int main() {

setlocale(LC_ALL,"chs");

while (1) {

printf("请输入一行文字(空行结束),\"%%20\"将替换为\" \",\"你懂得\"将替换为\"XXXXXX\":\n");

fgets(s,256,stdin);

if ('\n'==s[0]) break;

p=s;

while (1) {

p=strstr(p,"%20");

if (p) {

memmove(p+1,p+3,strlen(p)-3+1);

p[0]=' ';

} else break;

}

p=s;

while (1) {

p=strstr(p,"你懂得");

if (p) {

memmove(p+6,p+6,strlen(p)-6+1);

for (i=0;i<6;i++) p[i]='X';

} else break;

}

printf("%s",s);

}

return 0;

}

//请输入一行文字(空行结束),"%20"将替换为" ","你懂得"将替换为"XXXXXX":

//abcdefg%20helloworld%20something.pdf

//abcdefg helloworld something.pdf

//请输入一行文字(空行结束),"%20"将替换为" ","你懂得"将替换为"XXXXXX":

//这是测试文字你懂得,在这个你懂的地方,就得做你懂得的事

//这是测试文字XXXXX,在这个你懂的地方,就得做XXXXX的事

//请输入一行文字(空行结束),"%20"将替换为" ","你懂得"将替换为"XXXXXX":

//

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值