/
替换空格.cpp
65 lines (56 loc) · 1.01 KB
/
替换空格.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#include<iostream>
#include<vector>
using namespace std;
class Solution {
public:
void ReplaceBlank(char *str,int length) {
if(str==NULL || length <= 0)
return ;
int originalLength=0;
int numberOfBlank=0;
int i=0;
while(str[i]!='\0')
{
++ originalLength;
if(str[i]==' ')
++ numberOfBlank;
++ i;
}
int newLength = originalLength + numberOfBlank * 2;
if (newLength > length)
return ;
int indexOfOriginal=originalLength;
int indexOfNew=newLength;
while(indexOfOriginal >= 0 && indexOfNew > indexOfOriginal )
{
if(str[indexOfOriginal] == ' ')
{
str[indexOfNew --]= '0';
str[indexOfNew --]= '2';
str[indexOfNew --]= '%';
}
else
{
str[indexOfNew --]=str[indexOfOriginal];
}
-- indexOfOriginal;
}
for(int j=0;j<newLength;j++)
{
cout << str[j] ;
}
}
};
void main()
{
char aa[]="We are happy.";
for(int j=0;j<strlen(aa);j++)
{
cout << aa[j] ;
}
cout<<endl;
Solution ss;
ss.ReplaceBlank(aa,20);
system("pause");
return ;
}