A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© holfioo 中级黑马   /  2015-5-9 22:05  /  1239 人查看  /  11 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 holfioo 于 2015-5-12 22:32 编辑

基础测试,遇到用了get问题。。
#include <stdio.h>
#define M 9999
int main()
{
    char c[M];
    gets(c);  
    return 0;
}

各种提示unsafe,确实会造成隐患。。有什么用法来代替字符串的录入?

PS:就是查找字符串中最长字符的题。。

11 个回复

倒序浏览
用scanf呢?
回复 使用道具 举报
Rdxer 来自手机 中级黑马 2015-5-10 10:06:07
藤椅
字符串中最长字符????
回复 使用道具 举报
gets的长度可以无限输入,所以就是安全隐患,还有个函数叫做fgets 是gets的安全版 你可以查一下用法,在字符串输入时候比scanf好用

点评

fget没看懂。主要是  发表于 2015-5-11 09:11
回复 使用道具 举报
用Scanf函数来代替
回复 使用道具 举报
看不懂、、、、、、、、
回复 使用道具 举报
把get(c);换成scanf("%s", c);
回复 使用道具 举报
xiaofei93 发表于 2015-5-11 08:26
把get(c);换成scanf("%s", c);

但是这样会使丢失空格后面的内容
回复 使用道具 举报
roblonely 发表于 2015-5-11 10:10
但是这样会使丢失空格后面的内容

恩恩是的,你试试这种可以吧:弄一个while循环,只要不遇到回车就循环。   while((c=getchar())!='\n'){    }
回复 使用道具 举报
gets的长度可以无限输入,所以就是安全隐患,fgets函数 是gets的安全版 ,在字符串输入时候比scanf好用
回复 使用道具 举报
楼上都很厉害,学习了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马