printf打印字符串乱码
不懂就问系列:有一个问题:
写一个程序,让用户输入 5 句话,并计算出最长和最短的两句。
要求:使用 1 个二维数组存储用户输入的 5 句话。
代码如下:
#include<stdio.h>
#include<string.h>
#define MAX 1024
int main()
{
char i;
int c, j, ch, min, max, temp;
for (c = 0; c < 5; c++)
{
printf("请输入第%d句话:", c + 1);
for (j = 0; (ch = getchar()) != '\n'; j++)
{
i = ch;
}
}
i = '\0';
min = 0;
max = min;
printf("你输入了下边5句话:\n");
for (c = 0; c < 5; c++)
{
printf("%s\n", i);
temp = strlen(i);
min = temp < strlen(i) ? c : min;
max = temp > strlen(i) ? c : max;
}
printf("其中最长的是:%s\n", i);
printf("其中最短的是:%s\n", i);
}
测试时并没有警告;但在实际运行时打印出的字符串却出现了乱码,如图:
找了半天页找不出哪里有问题,想请教给位大大这是什么地方出错了。
这里是不是想每个字符串后加结尾,要放到循环体内
结果
IChoose 发表于 2019-5-25 18:30
这里是不是想每个字符串后加结尾,要放到循环体内
了解了,感谢你的回答。
页:
[1]