输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。

输入形式】

一个英文句子,可以带标点

【输出形式】

将句子中单词顺序翻转但是单词内字符顺序不变输出

【样例输入】

I am a student.
【样例输出】

student. a am I

用空格分割字符串,分割后的字符串保存在数组中,然后逆序输出就可以了。
代码如下,如有帮助,请帮忙采纳一下,谢谢。

img

代码:

#include<stdio.h>
#include <string.h>

#define MAXLEN 1000
int main()
{
    int i=0,nmb=0, start=0;
    char buf[1000];
    char out[MAXLEN][40]={0};
    gets(buf);
    while (buf[i])
    {
        if (buf[i] ==' ')
        {
            memcpy(out[nmb++],buf+start,i-start);
            start = i+1;
        }
        i++;
    }
    if(start != i)
        memcpy(out[nmb++],buf+start,i-start);
    for (i=nmb-1;i>=0;i--)
    {
        printf("%s ",out[i]);
    }

    return 0;
}

#include <stdio.h>
int main()
{
    char str[10000] = {0};
    char word[100][20] = {0};
    int i=0,j=0,n=0;
    gets(str);
    while(str[i] != 0)
    {
        if(str[i] == ' ')
        {
            n++;
            j=0;
        }
        else
            word[n][j++] = str[i];
        i++;
    }
    for(i=n;i>=0;i--)
        printf("%s ",word[i]);
    return 0;
}