将char×转换为string可以使用string.assign(char*)
string有push_back和popback
1
string ReplaceSapces(const string &s)
{
string retStr;
if(s.length() == 0)
return retStr;
int spaceCount = 0;
//统计输入字符串中空格的个数
for(string::const_iterator it = s.begin();it!= s.end();it++)
if((*it) == ' ')
spaceCount++;
//确定新的字符串的长度
int newStrLen = s.length()+ 2 * spaceCount;
char* newStr = new char[newStrLen+1];
newStr[newStrLen] = '\0';
//从后往前
for(string::const_reverse_iterator rit = s.rbegin();rit != s.rend();rit++)
{
if((*rit) == ' ')
{
newStr[newStrLen-1] = '0';
newStr[newStrLen-2] = '2';
newStr[newStrLen-3] = '%';
newStrLen-=3;
}
else
{
newStr[newStrLen-1] = *rit;
newStrLen-=1;
}
}
retStr.assign(newStr);
return retStr;
}
2
string ReplaceSapces1(const string &s)
{
string retStr;
if(s.length() == 0)
return retStr;
for(string::const_iterator it = s.begin();it!= s.end();it++)
{
if((*it) == ' ')
{
retStr.push_back('%');
retStr.push_back('2');
retStr.push_back('0');
}
else
{
retStr.push_back(*it);
}
}
return retStr;
}