字符串大小写转化,生产解决方案之后,显示没错误,但是有警告,就是scanf_s有问题,但之前用没出现过这种情况,求指教。
第10行修改为:scanf_s("%s",str1,5);
scanf_s("%s", str1); 对于变量str1这个字符串,没有传入字符串长度的参数,在调用scanf_s()函数时,最好提供一个数字以表明最多读取多少位字符。比如:char d[20];写成scanf_s("%s",d,20);就可以消除警告
注意c字符串得知识点,打算使用数组进行字符串得存储时,有什么注意事项。
c中字符串标识其实是一个内存地址,然后一直按字符取变量,直到遇到'\0'字符表示字符串得终止。
然后我们使用scnaf进行输入时也要注意,一般基础类型,如int,char等,后面得参数都是对应&取地址符号,而字符串%s得输入,后面其实不需要带这个,因为本身字符串表示得是一个首地址。(我的浅理解)
另外,vs有scanf对应得优化安全函数scanf_s其实和scanf一样,只是对字符串相关得输入做了长度安全保护,所以如果用scanf的话,像搂上说的,有第三个参数得(可以查看一下对应得scanf和scanf_s对应得参数描述,然后进行理解和使用)。