博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于字符串输入的问题
阅读量:6614 次
发布时间:2019-06-24

本文共 832 字,大约阅读时间需要 2 分钟。

今天在做一个关于字符串的程序的时候,出现了一个问题,用scanf函数无法接受一个含空格的字符串,于是自己就找了一下网上的资料,自己在整理了下。

scanf函数可以接受一个字符串,但是遇到空格或者换行它就会结束输入,无法在字符串中加入空格,而gets函数可以接受空格到字符串中,两个函数都会在输入结束后加上‘\0’。

本来以为用gets函数就好了,但是又遇到了新的问题,调试的时候遇到了警告: the `gets' function is dangerous and should not be used.(系统是ubuntu,用gcc调试),

这个警告意思是说gets函数是危险的,不应该被使用。解决的方法是使用fgets函数,fgets(char*,int size,stdin),其中stdin表示标准输入,意思就是从键盘上接受输入的字符,

这个函数控制了接受字符的大小,从而避免了接收的一个过大字符串到数组的问题,看下代码和运行结果吧。

1 int main() 2 { 3     char str1[10]; 4     char str2[10]; 5     fgets(str1,10,stdin);            //使用fgets接受含空格的字符串 6     scanf("%s",str2);            //scanf无法接收 7 //    gets(str);                //会有警告出现 8     printf("str1=%s",str1); 9     printf("str2=%s\n",str2);10     return 0;11 }

 

123 456123 456str1=123 456str2=123

输入的两个里面都含有空格,但是只有str1能接收到,即用fgets函数。

转载于:https://www.cnblogs.com/kingos/p/4524874.html

你可能感兴趣的文章
Silverlight杂记之HTTP通信WebClient介绍
查看>>
动态路由协议之RIP配置详解
查看>>
(apache+tomcat集群+memcached番外篇)单台tomcat的session信息的2种持久化方式
查看>>
nginx1.9+做TCP代理(端口转发)
查看>>
HTML元素的默认CSS设置介绍
查看>>
CSS-图片不变形设置
查看>>
Git异常:fatal: could not create work tree dir 'XXX': No such file or directory
查看>>
JavaScript:综合案例-表单验证
查看>>
GNU make manual 翻译(八十二)
查看>>
python批量下载图片的三种方法
查看>>
[项目过程中所遇到的各种问题记录]部署篇——项目部署过程中那些纠结的问题-IIS...
查看>>
/bin/bash^M: bad interpreter: 没有那个文件或目录
查看>>
apiCloud手动检测更新
查看>>
【JS】 JS毫秒值转化为正常格式 或者正常格式转化为毫秒值
查看>>
程序员的罪与罚
查看>>
android中文api (59) —— TabHost.TabSpec
查看>>
动态生成WizardPage
查看>>
Database2Sharp之混合型Winform框架代码生成
查看>>
iOS - OC NSData 数据
查看>>
Java web 开发填坑记 1 -如何正确的下载 eclipse
查看>>