时间限制:3秒
空间限制:32768K
热度指数:3934
算法知识视频讲解
题目描述
请编写一个方法,将字符串中的空格全部替换为“%20”。假定该字符串有足够的空间存放新增的字符,并且知道字符串的真实长度(小于等于1000),同时保证字符串由大小写的英文字母组成。
给定一个string iniString 为原始的串,以及串的长度 int len, 返回替换后的string。
测试样例:
"Mr John Smith”,13
返回:"Mr%20John%20Smith"
”Hello World”,12
返回:”Hello%20%20World”
解题思路:简单粗暴,用最简单的方法,从前到后,不过要引进两个函数,一个是isalpha(),另外一个是isspace(),isalpha()函数:判断字符ch是否为英文字母,若为英文字母,返回非0(小写字母为2,大写字母为1)。若不是字母,返回0。isspace()函数,判断输入字符是否为空格/回车/制表符等 ,如果获取到的字符是空格/回车/制表符等,返回非0值(即真);否则返回0
#include<iostream>
#include<string.h>
using namespace std;
string replaceSpace(string iniString,int length)
{
string str;
int j = 0;
for(int i = 0; i < length; ++i)
{
if (isalpha(iniString[i]))
str += iniString[i];
if (isspace(iniString[i]))
str += "%20";
}
return str;
}
int main()
{
string str;
while(getline(cin, str))
{
cout << replaceSpace(str,str.length()) <<endl;
}
return 0;
}
不懂的可以加我的QQ群:261035036(IT程序员面试宝典
群) 欢迎你的到来哦,看了博文给点脚印呗,谢谢啦~~