标签:长度 amp 从后往前 位置 nullptr 指针 容量 nal void
问题描述: 请实现一个函数,把字符串的每个空格替换成"%20"。例如,输入"We are happy", 则输出"We%20are%20happy"
/*
length为字符数组string的总容量
*/
void ReplaceBlank(char string[], int length){
if(string==nullptr && length<=0)
return;
// originalLength 为字符串string的实际长度
int originalLength = 0;
int numberOfBlank = 0;
int i = 0;
while(string[i] != ‘\0‘){
++originalLength;
if(string[i] == ‘ ‘)
++numberOfBlank;
++i;
}
// newLength 为把空格替换成‘%20‘之后的长度
int newLength = originalLength + numberOfBlank*2;
if(newLength > length)
return;
int indexOfOriginal = originalLength;
int indexOfNew = newLength;
while(indexOfOriginal >=0 && indexOfNew > indexOfOriginal){
if(string[indexOfOriginal] == ‘ ‘){
string[indexOfNew--] = ‘0‘;
string[indexOfNew--] = ‘2‘;
string[indexOfNew--] = ‘%‘;
}else{
string[indexOfNew--] = string[indexOfOriginal];
}
--indexOfOriginal;
}
}
标签:长度 amp 从后往前 位置 nullptr 指针 容量 nal void
原文地址:https://www.cnblogs.com/CodingML-1122/p/9189917.html