问题描述:输入一串任意一局英语将其单词翻转
例如:
输入:I am a student
输出:student a am I
思路:(1)首先将整个句子反转,即I am a student→tneduts a ma I
(2)将每个单词逐个反转,即tneduts a ma I→student a am I
#include<stdio.h>
#include<String.h>
void ExchangeS(char *s,int l,int r);
int main()
{
char s[100];
int l=0,r=0;//左右位置
printf("输入:");
gets(s);
int n=strlen(s);
ExchangeS(s,0,n);//将整段句子反转
for(r;r<=n;r++)//反转每个单词
{
if(s[r]==' '||s[r]=='\0')//字符串的结尾为'\0'
{
ExchangeS(s,l,r);
l=r+1;
}
}
printf("输出:");
puts(s);
return 0;
}
void ExchangeS(char *s,int l,int r)//反转
{
char t;
r=r-1;
while(l<r)
{
t=s[l];
s[l++]=s[r];
s[r--]=t;
}
}