版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/PZHU_CG_CSDN/article/details/81938312
题目描述
请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
思路:
重新开辟一个新的字符数组,将旧数组的值以此拷贝过来,如果拷贝过程中遇到空格字符,就进行转换,最后将新数组赋值给旧数组。
代码:
void replaceSpace(char *str,int length) {
char temp[100];
int cnt = 0;
for(int i = 0;i < length;i++) {
//转换空格字符
if(str[i] == ' '){
temp[cnt++] = '%';
temp[cnt++] = '2';
temp[cnt++] = '0';
}else{
temp[cnt++] = str[i];
}
}
for(int i = 0;i < cnt;i++){
str[i] = temp[i];
}
//字符数组末尾标识
str[cnt] = '\0';
}
注意:最后一定要将 ‘\0’ 赋值给字符数组的一位,不然找不到结束的位置。
相比之下,Java 代码就很简单了:
public String replaceSpace(StringBuffer str) {
String str2 = str.toString();
return str2.replaceAll(" ","%20");
}