题解 | #单词倒排#
单词倒排
http://www.nowcoder.com/practice/81544a4989df4109b33c2d65037c5836
#include<stdio.h>
#include<string.h>
int main() {
//使用scanf函数的读入指定字符集功能,遇到非指定字符会停止读入。
//创建一个二维数组,一个单词占据一行。当scanf遇到非字母的字符时,不读入,换行,读取下一个单词
//倒序 逐行 输出 每个单词
char str[10000][40] = { '\0' };//后面的例子里有单词长度超过20的
char end='\0';
int count = 0;
int i = 0;
while (1) { //一直循环,结束条件在循环体内
if (scanf("%[A-Za-z]", str[i]) > 0)//遇到其他字符停止读取。每次只读取大小写字母。返回值为读取个数。
i = i + 1;//作用1:计数。作用2:准备下一行
end = getchar();//scanf读取停止后,getchar读取。(二者读取的内容互补,不重合)
if (end == '\n')//结束条件
break;
}
count = i;//单词总数
for (i = count - 1; i >= 0; i--)
printf("%s ", str[i]);
}
#include<string.h>
int main() {
//使用scanf函数的读入指定字符集功能,遇到非指定字符会停止读入。
//创建一个二维数组,一个单词占据一行。当scanf遇到非字母的字符时,不读入,换行,读取下一个单词
//倒序 逐行 输出 每个单词
char str[10000][40] = { '\0' };//后面的例子里有单词长度超过20的
char end='\0';
int count = 0;
int i = 0;
while (1) { //一直循环,结束条件在循环体内
if (scanf("%[A-Za-z]", str[i]) > 0)//遇到其他字符停止读取。每次只读取大小写字母。返回值为读取个数。
i = i + 1;//作用1:计数。作用2:准备下一行
end = getchar();//scanf读取停止后,getchar读取。(二者读取的内容互补,不重合)
if (end == '\n')//结束条件
break;
}
count = i;//单词总数
for (i = count - 1; i >= 0; i--)
printf("%s ", str[i]);
}