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