/**
翻转句子中单词的顺序。
题目:输入一个英文句子,翻转中单词的顺序 但内字符不变。
句子中单词以空格符隔开。
为简起见,标点号和普通字母一样处理例如输入"I am a student."则输出"student. a am I"
*/
/*先把整个句子翻转过来,在意空格字符为界限翻转每个单词*/
#include <stdio.h>
#include <stdlib.h>
#include<string.h>
#define N 50
void TraverseString(char *str,int len)
{
char *p=str+len-1;
char ch;
while(str < p)
{
ch=*str;
*str=*p;
*p=ch;
++str;
--p;
}
}
void TraverseWord(char *str,int len)
{
char *p=str;
int count=0;
TraverseString(str,len);
while(*p!='\0')
{
if(*p!=' ')
++count;
else
{
TraverseString(p-count,count);
count=0;
}
++p;
}
}
int main()
{
char string[N];
int len;
gets(string);
len=strlen(string);
TraverseWord(string,len);
puts(string);
return 0;
}
翻转句子中单词的顺序
最新推荐文章于 2022-03-16 22:45:14 发布