ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

C语言-7-32 说反话-加强版 (20 分

2022-03-29 22:01:50  阅读:174  来源: 互联网

标签:输出 ch 20 加强版 int 32 单词 flag printf


给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。

输入格式:

测试输入包含一个测试用例,在一行内给出总长度不超过500 000的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用若干个空格分开。

输出格式:

每个测试用例的输出占一行,输出倒序后的句子,并且保证单词间只有1个空格。

#include<stdio.h>
#include<string.h>
int main(){
    char ch[500001];//如果是用char *ch定义一定要用malloc函数申请空间  ch = (char*)malloc(sizeof(ch));
    int flag = 0;
    gets(ch);
    int l = strlen(ch)-1;
    int x = 0;
   while(l){
       if(ch[l]!=' ')
           x++;
       else{
           ch[l] = '\0';
           if(x)
           {if(flag)
               putchar(' ');
           printf("%s",ch+l+1);//ch+x 即可以输入ch【x】直到'\0'出现的所有字符 而ch【x】只能输出一个字符串
           x = 0;
           flag = 1;}
       }
       l--;
   }
    if(x&&flag)
        putchar(' ');
    if(x)
        printf("%s",ch);
    printf("\n");
    return 0;
}

这道题其实并不用改变数组的结构 刚开始我总想改变数组来做 在网上搜了别人的代码发现不需要改变数组 只要从后向前输出就好

标签:输出,ch,20,加强版,int,32,单词,flag,printf
来源: https://www.cnblogs.com/L-1906/p/16074054.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有