目录一、题目描述二、思路分析三、整体代码总结一、题目描述 请实现一个函数,把字符串 s 中的每个空格替换成"%20"。 示例: 输入:s = "We a
请实现一个函数,把字符串 s 中的每个空格替换成"%20"。
示例:
输入:s = "We are happy."
输出:"We%20are%20happy."
限制:0 <= s 的长度 <= 10000
思路
C语言的字符串无法改变大小,所以无法直接在原来的字符串上操作。于是我们先统计空格个数,算出替换后的字符串的大小,并申请一块新内存。(注意要多申请一个byte,放字符串结尾符’\0’)。再次遍历这个字符串,将空格替换成%20。
算法流程:首先得到字符串s的长度
遍历这个字符串,统计空格个数
计算新的字符串需要的空间,并申请一块新内存
遍历字符串s,如果没有空格则进行正常赋值。如果碰到空格,则在新字符串对应的三个位置放上%20
整体代码如下
char* replaceSpace(char* s){
int count = 0;
int len = 0;
while(s[len] != '\0'){
len++;
}
int i = 0;
for(i = 0; i < len; i++){
if(s[i] == ' '){
count++;
}
}
char* str = (char*)malloc(sizeof(char)*(len + 1 + count * 2));
int j = 0;
for(i = 0; i < len; i++, j++){
str[j] = s[i];
if(s[i] == ' '){
str[j++] = '%';
str[j++] = '2';
str[j] = '0';
}
}
str[j] = '\0';
return str;
}
运行,测试通过
本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注编程网的更多内容!
--结束END--
本文标题: C语言字符串替换空格实例详解
本文链接: https://www.lsjlt.com/news/139627.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0