本文共 793 字,大约阅读时间需要 2 分钟。
我们可以很容易替换字符串中的字符。最简单的办法莫过于使用两个数组,遇到空格便将其替换为%20,然后继续遍历第一个数组。
#include "stdafx.h"#include#include using namespace std;char * replaceSpace(char *str,int length);int _tmain(int argc, _TCHAR* argv[]){ char a[]="We Are Happy"; int l=strlen(a); char *b; b=replaceSpace (a,l); cout< <
不过我们还可以用一个字符串数组来完它。
我们先统计空格数cnt,然后估计出替换后所需的字符串数组所需的长度,即newlen=length+2*cnt 从后往前在原数组中进行替换。从后往前的好处在于不会改变未遍历过的原数组字符void replaceSpace(char *str,int length) { int i=0,cnt=0; //记录空格的数量 while(i=0&&length>=0) { if(str[length]==' ') { str[newlen--]='0'; str[newlen--]='2'; str[newlen--]='%'; length--; } else str[newlen--]=str[length--]; } }
注意:如果要自己写算例,要写为字符串数组的形式,
即char a[]=“asdf”;这放在栈里,可以修改,如果写为 char *a=“asdf”;这是字符串常量,放在代码段,只能读取,不能修改。转载地址:http://rndmi.baihongyu.com/