【1】题目
【2】思路
【3】源代码
#include <iostream>
#include<fstream>
#include<vector>
using namespace std;
//用%20代替原有的空格
void ReplaceBlank(char str[])
{
//字符串若为空则直接退出
int len=strlen(str);
if (len == 0) { return; }
//求取字符串的长度和空格的个数
int originallenth = 0;
int numberofBlank = 0;
int i = 0;
while (str[i] != '\0'){
++originallenth;
if (str[i] == '\0'){return;}
if (str[i] == ' ') {++numberofBlank;}
++i;
}
//计算新的字符串的长度
int newoflenth=originallenth + numberofBlank * 2;
//原有字符串开始向后移
while (originallenth>0 && newoflenth>=originallenth)
{
//遇见空格
if (str[originallenth]==' ')
{
str[newoflenth--] = '0';
str[newoflenth--] = '2';
str[newoflenth--] = '%';
}
//遇见字符
else
{str[newoflenth--] = str[originallenth];}
--originallenth;
}
}
void main()
{
char str[] = "we are happy.";
int len = strlen(str);
cout << "len:" << len<<endl;
for (size_t i = 0; i < strlen(str); i++)
{
cout << str[i];
}
cout << endl;
ReplaceBlank(str);
for (size_t i = 0; i < strlen(str); i++)
{
cout << str[i];
}
cout << endl;
cin.get();
}