题解 | #句子反转|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;
}