c语言关于单词逆转的方法。请大家教我下

来源:百度知道 编辑:UC知道 时间:2024/06/08 21:16:16
我们, 用的是c语言程序,不是C++,题目:输入
I am happy today
输出
I ma yppah yadot
输入
I want to win the practice contest
输出
I tnaw ot niw eht ecitcarp tsetnoc

#include "stdio.h"
#include "conio.h"

main()
{
char c[10][10],ch;/*定义一个二维数组用来存放单词,ch用来接收输入的字符*/
int i,j,sum=0; /*i,j作为循环变量,sum统计输入的单词个数*/
for(i=0;i<10;i++) /*假设输入的单词在10个以内*/
{j=0;
while((ch=getchar())!=' ') /*循环接收每个字符,只要不是空格就还在i行上储存*/
{ if(ch=='\n') break; /*如果是回车,那么跳出本层循环*/

c[i][j]=ch;

j++;
}
sum++;
if(ch=='\n') break; /*如果是回车,那么跳出输入程序*/
}
for(i=0;i<sum;i++) /*按单词数判断输出的行数*/
{
for(j=9;j>=0;j--)
if (c[i][j]!='\0')putchar(c[i][j]); /*在不是'\0'的字符倒序输出,因为在每个单词的字符不到10个的时候初始化为'\0',所以要去掉*/
printf("\n");
}
getch();
}

#include <stdio.h>
#include <stdlib.h>

void
reverse_words(char * words)
{
char * h, * t; /* head and tail pointer to the string */