题目描述
最近birdfly收到了女友的几份信件,为了只要他俩知道信件的秘密,女友把信件里的每个单词都倒置了。这样只有birdfly将它们倒置过来才能明白女友的心思了。为此birdfly还特意请你编写程序帮他解决一下这个问题。
简单起见假定每封信只包含英文单词和空格,每两个单词之间有一个空格。且长度不超过100,每个单词长度不超过50。
要点
使用gets整行输入,再拆分成多个字符串进行翻转。
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
#include <unistd.h>
int main(void)
{
int i,j,k;
int wordnum;
char temp;
char word[100][50]={0};
char str[100]={0};
while(gets(str)!=NULL)
{
wordnum=0;
memset(word,0,sizeof(word));
for(i=0;str[i]!='\0';i++)
{
if(str[i] == ' ' || str[i] == '\n')
{
word[wordnum][k] = '\0';
wordnum++;
k=0;
}
else
{
word[wordnum][k] = str[i];
k++;
}
}
k=0;
wordnum++;
for(i=0;i<wordnum;i++)
{
for(j=0;j<strlen(word[i])/2;j++)
{
temp = word[i][j];
word[i][j] = word[i][strlen(word[i])-j-1];
word[i][strlen(word[i])-j-1] = temp;
}
if(i<wordnum-1)
printf("%s ",word[i]);
else
printf("%s\n",word[i]);
}
}
getchar();
return 0;
}