c语言 输入一个字符串 (一句英文)然后将英文里所有的单词逆序 然后输出这个字符串 大神帮我改程序

我的程序大神帮我把程序改一下加注释谢谢我的程序:#include<stdio.h>intmain(){inti,j;charmyString[300],temp[20];... 我的程序 大神帮我把程序改一下 加注释 谢谢
我的程序:
#include <stdio.h>
int main()
{
int i,j;
char myString[300],temp[20];
j=0;
int p;//用来记录数组位置
p=0;
/*scanf("%d",&T);
for (i=0;i<T;i++)
{
gets(myString[i]);
}*/
gets(myString);
for (i=0;;i++)
{
//p=i;
if (myString[i]==0)
{
break;
}
if (myString[i]==' ')
{
//j=0;
p=i;
for (j=0;;j++)
{
if(myString[p]==' ')
break;
myString[p]=temp[j];
p--;
}
j=0;
}
temp[j]=myString[i];
}
printf("%s\n",myString);
return 0;
}
展开
 我来答
快先带儿子走
2015-03-07 · TA获得超过275个赞
知道小有建树答主
回答量:271
采纳率:33%
帮助的人:179万
展开全部
没按你的要求,我自己写了一个,,,满意望采纳...
#include <stdio.h>
#include <string.h>
int main()
{
char s[3000],c[1000][20]={0};//c[j]来储存单词,k是单词中的字母
int i,j=0,k=0;
gets(s);
for(i=0; i<strlen(s); i++)
{
if(s[i]==' ')
{
j++; //遇空格换下一个单词,k归零
k=0;
continue;
}
c[j][k]=s[i];
k++;
}
for(i=j; i>=0; i--)//逆序输出
printf("%s ",c[i]);
}
追问
谢谢  不过你写的程序没有按照我的要求 我想的是 每一个单词都逆序输出 不过你的程序还是给了我很大启发 我也在你的程序的基础上写出来了 谢谢
匿名用户
2021-05-03
展开全部
#include<stdio.h>
#include<string.h>
#define SIZE 15
int main()
{
char words[SIZE][15];
char s[SIZE*15];
int i,j,num=0;
gets(s);
i=0;
while(s[0]!='\0')
{
if(i==0)
{
if(s[0]!=' ')
{
j=0;
num++;
words [num-1][j]=s[0]; /////第一个单词保存
if(words [num-1][j]>='a'&&words [num-1][j]<='z')
words [num-1][j]=words [num-1][j]-32; //////首字母大写
}
}
}
for(i=1;i<(SIZE*15);i++)
{
if(s[i-1]=' ')
{
if(s[i]!=' ')
{
j=0;
num++;
words [num-1][j]=s[i];
if(words [num-1][j]>='a'&&words [num-1][j]<='z')
words [num-1][j]=words [num-1][j]-32;
}
else//////s[i]==' ';

}
}

for()
printf("%c",words[num-1][j]);
system("pause");
return 0;
}

这是一个不完整的程序,不知道怎么写了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
White_MouseYBZ
推荐于2017-09-01 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6530万
展开全部

不改你的了,提供一个作参考……

//#include "stdafx.h"//vc++6.0加上这一行.
#include "stdio.h"
#include "ctype.h"
#include "string.h"
int main(void){
    char text[300],tmp[20],ch;
    int i,j,n,ln,lx;
    printf("Type a text...\ntext=");
    ln=strlen(gets(text));
    for(i=0;i<ln;i++){
        sscanf(text+i,"%s%n",tmp,&n);
        if(isalpha(tmp[0])){
            if(lx=strlen(tmp)-1,!isalpha(tmp[lx]))
                lx--;
            for(j=0;j<lx;j++,lx--)
                ch=text[i+j],text[i+j]=text[i+lx],text[i+lx]=ch;
        }
        i+=n;
    }
    printf("%s\n",text);
    return 0;
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式