00问答网
所有问题
scanf如果读入的字符串长度大于数组的长度会出现什么样的问题?
如题所述
举报该问题
推荐答案 2020-03-02
如果用%s作为格式指示符来读取一个过长的
字符串
,那么会导致内存溢出。
如图所示,虽然可以输出整个字符串,但是因为在用%s输出这个字符串时数组下标越界了,导致程序奔溃。
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://00.wendadaohang.com/zd/enrDZIZZIZjre0TDrn.html
相似回答
C语言
字符串超过数组长度
怎么办,如代码,%s不怎么熟悉,为
什么
会原样
显示
...
答:
可以用
scanf
("%9s",a) 来限定需要获取
的长度
,9代表获取9个字节 这样就不
会出现
越界
问题
了
为
什么
定义
字符数组
而用
scanf
却可以输入
超过
其
长度的字符串
呢?
答:
scanf
函数是可以限制输入长度的,但scanf("%s",a)这种写法没有使用它的限制功能,所以是不检查
字符串长度
;C/C++也是不检查
数组
越界的。防止数组越界的任务完全由程序员事先安排完成;越界了
就会产生
不良或危险后果,正规软件中是绝对不能允许的。正因为“不检查”,当越界操作数组时,在越界部分没有受到...
看下面程序,为
什么
我输入
的字符串
超出了
长度
怎么还能
显示
出来啊_百度知 ...
答:
回答:
scanf
和 printf 是不会检查
字符串的长度
的,scanf只是把输入流中的数据存储到某一地址的内存空间或者某一地址开始的一连串内存空间里,printf则负责从某一变量存储的内存地址里读出数据送到输出流里,再在屏幕上输出,它们能够识别的是变量的起始地址和预定义好的数据类型的数据长度,字符串的长度...
c语言中用
scanf
函数输入
字符串
后用strcmp函数比较,
出现的
小
问题
...
答:
那个,
字符串
是有结尾符的啊。长度应该声明为3.int main(){ char a[3]; char b[3]="ab";
scanf
("%s",a); if(strcmp(a,b)==0) printf("正确\n"); else printf("错误\n"); return 0;}
大家正在搜
c语言怎么用scanf输入字符串
用scanf函数输入字符串
scanf输入字符串怎么结束
如何用scanf输入字符串
scanf读入字符串 空格
scanf怎么输入数组
用scanf给字符数组赋值
用scanf函数输入数组
scanf输入数组的三种方式
相关问题
为什么定义字符数组而用scanf却可以输入超过其长度的字符串...
C语言中char s[6];scanf("%s",&s); ...
C语言字符串超过数组长度怎么办,如代码,%s不怎么熟悉,为什...
scanf(“%s”,str)函数与字符串 输入串长度应小于...
如何将一个字符串输入到一个数组中?
c语言中关于字符串长度的问题
输入有限个字符串,按字符串长度排序,如果字符串长度一样,再把...
C语言怎样用scanf定义数组长度,再定义数组各元素?