C循环输入字符的问题

来源:百度知道 编辑:UC知道 时间:2024/05/16 01:23:29
#include <stdio.h>
#include <stdlib.h>

void main()
{
char *data;
printf("你想输入几个字符:");
int number;
scanf("%d", &number);

if((data = (char*)malloc(number * sizeof(char))) == NULL)
{
exit(1);
}

for (int i = 0; i < number; i++)
{
scanf("%c", &(data[i]));
}

for (i = 0; i < number; i++)
{
printf("%c", data[i]);
}
}

请问这个程序错在哪?怎么运行有点不正常啊!!!
比如说我输入3个字符:abc 为什么只能显示ab呢?c跑到哪里去了

应该定义字符数组吧?我也是初学者~~

太简单拉
for (int i = 0; i < =number; i++)
{
scanf("%c", &(data[i]));
}

for (i = 0; i < =number; i++)
{
printf("%c", data[i]);
}
改成i<=就行了
因为数组是从0开始的呵呵