我想打印字符数组(作为字符串),但它在运行时显示一个空字符串
初始化:
char str1[6]= "Black";
char str2[7]= "Yellow";
Run Code Online (Sandbox Code Playgroud)
printf 语句:
printf ("%s = %d Bath\n",str1,a);
printf ("%s = %d Bath\n",str2,a);
Run Code Online (Sandbox Code Playgroud)
预期的:
Black = 150 Bath
Yellow = 150 Bath
Run Code Online (Sandbox Code Playgroud)
输出
Black = 150 Bath
= 150 Bath
Run Code Online (Sandbox Code Playgroud)
我尝试在没有大小数字的情况下进行初始化,例如char str2[]= "Yellow";
或使用 C++ cout 来显示
原始代码:
char str1[6]= "Black";
char str2[7]= "Yellow";
Run Code Online (Sandbox Code Playgroud)
char size ,E= 'E' , S= 'S' , M= 'M', L = 'L';
...
scanf ("%s",&size);
Run Code Online (Sandbox Code Playgroud)
您告诉系统将字符串(由于%s)扫描为单个字符(即size)。
这是未定义的行为
使用%c的字符。
顺便提一句:
使用时,scanf您应该始终检查返回值是否等于您希望扫描的元素数。
所以而不是:
scanf("%d",&requiredamount);
Run Code Online (Sandbox Code Playgroud)
你应该做:
if (scanf("%d",&requiredamount) != 1)
{
// Could not scan integer - add error handling
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
60 次 |
| 最近记录: |