FZU1054阅读顺序 & c++中getchar和gets函数解析
2017-05-15 21:54
260 查看
http://acm.fzu.edu.cn/problem.php?pid=1054
这是一道反转字符串问题。
思路:
1.输入字符串个数
2.获取输入的字符串
3.反转,输出。
最后AC代码如下
比较如下代码
这两片代码不同点在于getchar的位置不同,但是只有第一个是AC的。
这里就是没有明白getchar和gets这两个函数的区别。
gets:
从标准输入接收一串字符,遇到'\n'时结束,但不接收'\n',把 '\n'留存输入缓冲区;把接收的一串字符存储在形式参数指针指向的空间,并在最后自动添加一个'\0'。
getchar:
从标准输入接收一个字符返回,多余的字符全部留在输入缓冲区。
题目中,数目只需要输入一次,因而用getchar,而while循环要多次输入字符串,所以用gets。
那么getchar放到while循环里显然逻辑就错了。
这是一道反转字符串问题。
思路:
1.输入字符串个数
2.获取输入的字符串
3.反转,输出。
最后AC代码如下
#include <iostream> #include <cstdio> #include <cstring> using namespace std; int main (){ int number; char ch[220]; cin>>number; getchar(); while(number--){ gets(ch); int len = strlen(ch); for(int i = len-1;i>= 0;i--){ cout<<ch[i]; } cout<<endl; } return 0; }
比较如下代码
这两片代码不同点在于getchar的位置不同,但是只有第一个是AC的。
这里就是没有明白getchar和gets这两个函数的区别。
gets:
从标准输入接收一串字符,遇到'\n'时结束,但不接收'\n',把 '\n'留存输入缓冲区;把接收的一串字符存储在形式参数指针指向的空间,并在最后自动添加一个'\0'。
getchar:
从标准输入接收一个字符返回,多余的字符全部留在输入缓冲区。
题目中,数目只需要输入一次,因而用getchar,而while循环要多次输入字符串,所以用gets。
那么getchar放到while循环里显然逻辑就错了。
相关文章推荐
- FZU 1054 阅读顺序
- FZU1054-阅读顺序
- FZU 1054 阅读顺序
- FZU-1054 阅读顺序(水、反转字符串处理)
- FZU1054 之 阅读顺序
- FZU 1054 阅读顺序 别紧张,很简单
- Effective C++ (8) 顺序容器vector,list,deque
- [转]推荐的C++书籍以及阅读顺序
- 推荐的C++书籍以及阅读顺序
- 推荐的C++书籍以及阅读顺序
- 推荐的C++书籍以及阅读顺序
- 推荐的C++书籍以及阅读顺序
- 引用一位叫jmshl 前辈的C/C++书籍阅读顺序
- C++关于多个连续流插入符&lt;&lt;中执行的顺序问题
- 解决vc C++ 调用 C 函数时unresolved external symbol " __cdecl 。。。无法解析的外部符合
- 推荐的C++书籍及阅读顺序(转载)
- extern "C"的用法解析--C++中extern “C”含义深层探索
- 推荐的C++书籍以及阅读顺序
- [转载]推荐的C++书籍以及阅读顺序
- 推荐的C++书籍以及阅读顺序 (转)