替换空格
Contact me:
Blog -> https://cugtyt.github.io/blog/index
Email -> cugtyt@qq.com
GitHub -> Cugtyt@GitHub
题目描述
请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
思路:先统计一下有多少空格,计算新字符串有多长,从后往前,遇到空格替换,否则,直接复制
void replaceSpace(char *str,int length) {
// 检查
if (length <= 0 || str == nullptr) {
return;
}
//统计空格
int count = 0;
for (int i = 0; i < length; ++i) {
if (*(str + i) == ' ') {
++count;
}
}
//计算新字符串结尾
char *old_end = str + length;
char *new_end = str + length + count * 2;
while (new_end >= str) {
// 复制
if (*old_end != ' ') {
*new_end = *old_end;
}
// 替换
else {
*new_end = '0';
--new_end;
*new_end = '2';
--new_end;
*new_end = '%';
}
--new_end;
--old_end;
}
}