将一句话里面的单词进行倒置,标点符号不倒换。比如一句话“i come from china.”倒换后变成“china. from come i”。
解析:解决该问题可以分为两步,第一步全盘置换为“ .anihc morf emoc i”,第二部对每个单词进行逐步翻转,如果不是空格,则开始翻转单词。
具体代码如下:
#include<stdio.h>
#include<iostream>
int main(void)
{
int i=0,j=0,flag=0,begain,end;
char str[]="i am from china.",temp;
j=strlen(str)-1;
printf(" string = %s\n",str);
while(j>i)
{
temp=str[i];
str[i]=str[j];
str[j]=temp;
j--;
i++;
}
printf(" string = %s\n",str);
i=0;
while(str[i])
{
if(str[i]!=' ')
{
begain=i;
while(str[i]!=' ')
{
i++;
}
i=i-1;
end=i;
}
while(end>begain)
{
temp=str[begain];
str[begain]=str[end];
str[end]=temp;
end--;
begain++;
}
i++;
}
printf(" string = %s\n",str);
return 0;
}