当前位置: 代码迷 >> C语言 >> for循环给字符串赋值
  详细解决方案

for循环给字符串赋值

热度:181   发布时间:2006-10-26 14:18:36.0
for循环给字符串赋值

#include <stdio.h>
#include <string.h>
main()
{
int k,t;


struct css
{
char cssright[2];
};

css fxb[3][5];

for(k=0;k<3;k++)
{
for(t=0;t<5;t++)
{
if((k==0)&&(t<=2)) strcpy(fxb[k][t].cssright,"BA");
printf("%d ",t);
printf("%d ",k);
printf("%s ",fxb[0][0].cssright); //为什么得到的结果是 BABABA,应该是BA才对啊
printf("%s\n",fxb[0][1].cssright);
}
}
}

搜索更多相关的解决方案: 赋值  字符  

----------------解决方案--------------------------------------------------------
等啊等!
----------------解决方案--------------------------------------------------------
if((k==0)&&(t<=2)) strcpy(fxb[k][t].cssright,"BA");

在用strcpy函数时,要保证目的字符数组的长度,这样定义cssright[2]是不行的,因为字符串后有‘\0’,也要占一位,所以定义成cssright[3]就对了。
另外定义结构体数组时,没有赋初值在第一次调用fxb[0][1].cssright时这个值就不确定。
----------------解决方案--------------------------------------------------------
啊,好像是!!!

可还是很奇怪,为什么是BABABA,应该要溢出啊
----------------解决方案--------------------------------------------------------

不知道楼主的程序的K,T 有什么用.
----------------解决方案--------------------------------------------------------

数组在内存中是连续存放的,并且字符串数组以‘\0’作为结束标志。所以你的程序就要出现上面的问题。


----------------解决方案--------------------------------------------------------
...
----------------解决方案--------------------------------------------------------
如果不怕麻烦可以用纸上一步一步来,这个也可以训练读程序能力。
----------------解决方案--------------------------------------------------------
  相关解决方案