替换空格(五)
替换 空格
2023-09-14 09:16:11 时间
题目:实现一个函数,把字符串中的每个空格替换成"%20"。例如输入“We are happy.”,
则输出“We%20are%20happy.”。
#include <cstdio>
#include <cstring>
/*length 为字符数组str的总容量,大于或等于字符串str的实际长度*/
void ReplaceBlank(char str[], int length){
if(str == nullptr && length <= 0)
return;
/*originalLength 为字符串str的实际长度*/
int originalLength = 0;
int numberOfBlank = 0;
int i = 0;
//计算出数组str的容量,然后算出加上空格的长度.
while(str[i] != '\0'){
++originalLength;
if(str[i] == ' ')
++ numberOfBlank;
++i;
}
printf("xxx---------->line = %d, i = %d, originalLength = %d, numberOfBlank = %d\n",__LINE__,i,originalLength, numberOfBlank);
/*newLength 为把空格替换成'%20'之后的长度*/
int newLength = originalLength + numberOfBlank * 2;
if(newLength > length)
return;
int indexOfOriginal = originalLength;
int indexOfNew = newLength;
while(indexOfOriginal >= 0 && indexOfNew > indexOfOriginal){
if(str[indexOfOriginal] == ' '){
printf("xxx------------>line = %d, indexOfOriginal = %d\n",__LINE__,indexOfOriginal);
str[indexOfNew--] = '0';
str[indexOfNew--] = '2';
str[indexOfNew--] = '%';
}else{
printf("xxx------------>line = %d, indexOfOriginal = %d\n",__LINE__,indexOfOriginal);
str[indexOfNew--] = str[indexOfOriginal];
}
indexOfOriginal--;
}
}
int main(int argc, char* argv[]){
const int length = 100;
char str[length] = "hello world";
ReplaceBlank(str, length);
printf("str = %s\n",str);
return 0;
}
相关文章
- objc写一个NSMutableArray不连续索引替换对象的方法
- 可替换元素和非可替换元素
- php把采集内容中图片地址下载并替换成本地地址
- perl 读取一个文件 替换文件的关键词 把数据替换到新的文件
- Python基于正则表达式实现文件内容替换的方法
- 替换空格
- linux shell 字符串操作(长度,查找,替换)详解
- 替换空格
- 16. 替换空格
- IDEA设置使用git bash替换原有terminal(cmd)
- 100天精通Python(数据分析篇)——第73天:Pandas文本数据处理方法之查找、替换、拼接、正则、虚拟变量
- 【Android 逆向】启动 DEX 字节码中的 Activity 组件 ( 替换 LoadedApk 中的类加载器 | 加载 DEX 文件中的 Activity 类并启动成功 )