题解 | #句子反转|C语言|指针数组逆序输出#

句子反转

http://www.nowcoder.com/practice/0ae4a12ab0a048ee900d1536a6e98315

注意输入处理与结束标志

对输入处理使用gets(),但是,注意一行的结束,输入的是字符串,所以结束标志是'\0'

使用指针数组

使用指针数组,该数组中指针指向没一个单词,将此数组逆序输出即可
完整代码如下

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

int main()
{
    char input[1000] = {0};
    char buff[1000] = {0};
    char *p[100];
    while(gets(input) != NULL)
    {
        int i = 0,j = 1;
        p[0] = &buff[0];
        while(input[i] != '\0')
        {
            if(input[i] != ' ')
            {
                buff[i] = input[i];
            }
            else
            {
                buff[i] = input[i];
                buff[i] = '\0';
                p[j++] = &buff[i+1];
            }
            i++;
        }
        buff[i] = '\0';
        while(j > 0)
        {
            printf("%s ",p[--j]);
        }
    }
    return 0;
}
全部评论

相关推荐

点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务