c 语言 字符串的存储

来源:百度知道 编辑:UC知道 时间:2024/05/15 05:57:19
main()
{
int i;
char str[20];
for(i=0;i<20;i++)
scanf("%c", str[i]);
for(i=0;i<20;i++)
printf("%c", str[i]);

}
这个在输入的时候有问题, 就是够20个时候不能执行, 有什么好的建议吗?
一楼似乎有道理但是char str[21] 这里我不明白

修改好了,有两处错误

#include <stdio.h>
void main()
{
int i;
char str[20];
for(i=0;i<20;i++)
{
scanf("%c", &str[i]); // 1 & 取地址
getchar(); // 2 接受回车
}
for(i=0;i<20;i++)
printf("%c", str[i]);

}

main()
{
int i;
//char str[20];
char str[21];
for(i=0;i<20;i++)
scanf("%c", &str[i]);
//scanf("%c", str[i]); //当你是单个字符输入用 & 取地址
for(i=0;i<20;i++)
printf("%c", str[i]); //由于字符数组结尾没有 '\0' 所以不能自动结束,声明数组对一个位
}

这个程序能够解决你的问题:
#include"stdio.h"
#define N 20
main()
{
char a[N];
printf("\n Input: ");
scanf("%s",a);
printf("\noutput: ");
printf("%s",a);
}
在这个程序中,你可以随便输入几个字符,并不需要规定的20个(当然不能超过宏定义的20个,如果你想多输的话,只要把N后的数重新改一下就行,很方便).

因为你刚刚用for循环,必须执行20次输入才形,如果直