替换空格
题目描述
请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
思路:记录空格个数,然后从后向前赋值,遇见空格替换成%20
//length为牛客系统规定字符串输出的最大长度,固定为一个常数
class
Solution {
public
:
void
replaceSpace(
char
*str,
int
length) {
int
len =
0
, konglen =
0
;
while
(str[len] !=
'\0'
){
if
(str[len] ==
' '
){
konglen++;
}
len++;
}
int
tail = len+konglen*
2
;
//末尾下标
if
(tail >= length || tail ==
0
){
return
;
}
for
(
int
i=tail; i>len && i>=
0
; i--){
if
(str[len] ==
' '
){
str[i--] =
'0'
;
str[i--] =
'2'
;
str[i] =
'%'
;
}
else
{
str[i] = str[len];
}
len--;
}
}
};