关于C语言中字符数组的一个小问题
我是初学者,才刚刚开始学,到数组和指针这就有点弄不明白了,所以想多写写
目前遇到一个问题,
我想定义一个字符数组 a[n]
然后我输入多少个字符n就变成多少
我记得之前有本书上写过,好像是用sizeof某某/sizeof某某,但是当时看不懂,就没注意,现在找不到了,求位前辈帮下忙。
另外,还有一个小问题,
定义一个a[5]的字符数组
然后用scanf赋值,如果按顺序从a[0]开始赋值,如果输入3个字符,那a[4]和a[5]是被随机赋值吗?
还有我这个代码 编译之后,执行,如果只输入3个或者4个字符的话,就一直无法输出,除非把字符塞满,有没有方法能够解决这个问题?或者说一定要把数组塞满吗?
希望能有前辈能够帮忙解答,非常非常感谢,因为才学了一个星期,很多高深的东西和术语也不是很懂,所以希望前辈能够不要说的太复杂,谢谢谢谢
#include <stdio.h>
int main (){
int i,j;
char a[5];
for(j = 0;j < 5;j++){
scanf("%c ",&a[j]);
}
printf("输入:");
for(i = 0;i < 5;i++){
printf("%c",a[i]);
}
printf("\n");
return 0;
}
[解决办法]
for(i = 0;i < 5;i++)
主要是你循环了5次,所以一定要输入五次!循环结束!
如果不想5次的话,可以for(i =0; i < n; i++) // 你表示你想循环输入的次数!
楼主可以看看http://download.csdn.net/detail/max_min_/6333711
入门的书籍!多敲敲里面的例程
[解决办法]
你的意思就是
char* p="abcdefg"
//p[0]='a'
//p[1]='b'
...
//p[5]='f'
...
是这个意思吧?