翻转吧!字符串

来源:互联网 发布:网络运维与管理 邮发 编辑:程序博客网 时间:2024/06/01 18:19

题目描述

最近老师给von出了一道编程题目,题意描述如下:给定一个字符串例如“I am a student”输出如下格式:“student a am I”,咱们都知道von有时脑子短路,这下把他难坏了。他只好请他最好的朋友你来帮忙了。

输入

第一行一个整数T,表示几组数据,接下来有T行字符串(仅包含大写字母(A-Z)小写字母(a-z)和空格)(提示:字符串最后结尾保证不会有多余空格,字符串长度 <= 200 ,0< T < 10)

输出

首先输出“Case i:” i表示第几组数据,然后按指定格式输出字符串。 

示例输入

4I am a studentI love ACM very muchI love MMlet us go to play

示例输出

Case 1:student a am ICase 2:much very ACM love ICase 3:MM love ICase 4:play to go us let

 

思路:

输入一个字符串,把每个单词看成二维数组中的一个串,通过判断空格数,找出每个单词应该存在第几行,通过判断每个单词有几个,找出每个单词的字母应该存在第i行的第几个。

 

 

# include <stdio.h># include <string.h>int main(){    int n, i, cnt, h, j;                                                                                   char a[201], b[201][201];    scanf("%d",&n);    getchar();                               //读入输入n 后打的回车    for(i=1;i<=n;i++)    {        h=0;        cnt=0;        gets(a);        int len = strlen(a);        for(j=0;j<len;j++)        {            if(a[j]!=' ')            {                b[h][cnt]=a[j];             // 如果是字母就把它存入b中,cnt++确定每个字母在每一行的位置                cnt++;            }            else            {                              //注意:如果是空格,先写上字符串结束标志'\0',累加h,表示开始新的一行,cnt从0 开始                b[h][cnt]='\0';                h++;                cnt=0;            }        }        b[h][cnt]='\0';        printf("Case %d:", i);        for(j=h;j>=0;j--)        {            printf("%s",b[j]);            if(j!=0)                printf(" ");        }        printf("\n");    }    return 0;}

0 0
原创粉丝点击