在vs中scanf函数中下图的代码正确,但是因为vs中scanf函数被认为不安全,现基本改用了scanf_s函数。
#include<stdio.h>
int main()
{
char a[20];
printf("输入一个字符串=");
scanf_s("%s",a);
}
如若还像以前一样将会报错:0x7973E689 (ucrtbased.dll)处(位于 Project1.exe 中)引发的异常: 0xC0000005: 写入位置 0x01360000 时发生访问冲突。
scanf_s函数还需加一个参数 :length参数,限定字符串的长度。若超过length参数将无法输入。tips:不会报错,但是将无法进行操作。
#include<stdio.h> int main() { char a[20]; int x=0; printf("输入一个字符串="); scanf_s("%s",a,10); int i = 0; while (a[i] != '\0') { printf("%c", a[i]); i++; } }
字符串后有“/0”不要忽略, 字符串有十一位超出length参数出错。
学习途中碰到的问题,,记录自己的解决办法,欢迎大家评论学习。若有问题的,希望不吝指正。