后来想了一下,其实也有更加简单的方法,先整个字符串反转,然后反转其中的子字符序列
void string_revert_way_two()
{
/*
****
8.28
字符反转 方法二
成功
*/
char *str="This is the first string";
cout<<"Original string: "<<str<<endl;
int len=strlen(str);
char *des=(char*)malloc(sizeof(char)*(len+1));
int index=0;
while(str[index]!='\0')
{
des[index]=str[len-index-1];
index++;
}
des[len]='\0';
cout<<"Revert once: "<<des<<endl;
int start=0,end=0;
int j ;
char temp;
while(end<=len)
{
if(des[end]==' ')
{
for(j=0;j<(end-start)/2;j++)
{
temp=des[start+j];
des[start+j]=des[end-j-1];
des[end-j-1]=temp;
}
start=end+1;
}
if(des[end]=='\0')
{
for(j=0;j<(end-start)/2;j++)
{
temp=des[start+j];
des[start+j]=des[end-j-1];
des[end-j-1]=temp;
}
}
end++;
}
cout<<"Now string is "<<des<<endl;
}