| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1090 人关注过本帖
标题:for循环给字符串赋值
只看楼主 加入收藏
black0fish
Rank: 1
等 级:新手上路
帖 子:51
专家分:0
注 册:2006-9-5
收藏
 问题点数:0 回复次数:7 
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);
}
}
}

搜索更多相关主题的帖子: 赋值 字符 
2006-10-26 14:18
black0fish
Rank: 1
等 级:新手上路
帖 子:51
专家分:0
注 册:2006-9-5
收藏
得分:0 
等啊等!
2006-10-26 17:44
husi
Rank: 1
等 级:新手上路
威 望:1
帖 子:46
专家分:0
注 册:2006-10-17
收藏
得分:0 
if((k==0)&&(t<=2)) strcpy(fxb[k][t].cssright,"BA");

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

2006-10-26 18:48
black0fish
Rank: 1
等 级:新手上路
帖 子:51
专家分:0
注 册:2006-9-5
收藏
得分:0 
啊,好像是!!!

可还是很奇怪,为什么是BABABA,应该要溢出啊
2006-10-26 21:50
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册

不知道楼主的程序的K,T 有什么用.

倚天照海花无数,流水高山心自知。
2006-10-26 22:01
husi
Rank: 1
等 级:新手上路
威 望:1
帖 子:46
专家分:0
注 册:2006-10-17
收藏
得分:0 

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


2006-10-27 10:32
black0fish
Rank: 1
等 级:新手上路
帖 子:51
专家分:0
注 册:2006-9-5
收藏
得分:0 
...
2006-10-27 13:14
C语言学习者
Rank: 4
等 级:贵宾
威 望:13
帖 子:1278
专家分:0
注 册:2006-9-26
收藏
得分:0 
如果不怕麻烦可以用纸上一步一步来,这个也可以训练读程序能力。

谁有强殖装甲第二部,可以Q我460054868
2006-10-27 16:41
快速回复:for循环给字符串赋值
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017038 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved