标签:++ off 替换 int 赋值 长度 pre har strong
题目:
请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
思路:
遍历两遍的字符串数组;第一遍记录空格的个数num,由num和字符串长度可以计算出新的字符串的长度newLength;第二遍替换,从字符串的最末尾开始遍历:
1,如果不是空格,赋值到新字符串的对应位置,;
2,如果是空格,赋值对应的%20到新字符串的对应位置;
代码:
//c++
void replaceSpace(char *str,int length) {
int newLength=0;
int i=0;
int num=0;
while(str[i]!=‘\0‘){
if(str[i]==‘ ‘){
num++;
}
i++;
}
newLength=i+num*2;
if(newLength>length) return;
while(i!=-1){
if(str[i]==‘ ‘){
str[newLength--]=‘0‘;
str[newLength--]=‘2‘;
str[newLength]=‘%‘;
}else{
str[newLength]=str[i];
}
i--;
newLength--;
}
}
标签:++ off 替换 int 赋值 长度 pre har strong
原文地址:http://www.cnblogs.com/llauser/p/7472627.html