| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2165 人关注过本帖
标题:[求助]字符串能否直接赋给结构实例数组中的char数组
只看楼主 加入收藏
zhoulei906
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2006-5-8
收藏
 问题点数:0 回复次数:12 
[求助]字符串能否直接赋给结构实例数组中的char数组
struct ygs
{
char fac[30];

} c[1000];

j=0;

c[j].fac = "某某某"; /* 此行代码报错: incompatible types in assignment */




为什么会出错啊? 哪位大侠指点一下哦!:)


搜索更多相关主题的帖子: char 实例 字符 结构 
2006-05-25 14:48
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
收藏
得分:0 

只有在定义一个数组变量的时候才可以赋初始值

例如 char str[10]="aksj"; /*是可以的*/

char str[10]; str[10]="aksj"; /*错误的*/


叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-05-25 16:17
SunShining
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:31
帖 子:2215
专家分:0
注 册:2006-2-17
收藏
得分:0 

可以用 char *fac;


[glow=255,violet,2]闭关修炼ing...[/glow] [FLASH=360,180]http://www./chinaren.swf[/FLASH]
2006-05-25 16:23
zhoulei906
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2006-5-8
收藏
得分:0 
谢谢两位了,好难理解,唉,呵,楼下能写个实例看看啊!

新人,望各位大佬照顾一下啊!
2006-05-25 17:20
SunShining
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:31
帖 子:2215
专家分:0
注 册:2006-2-17
收藏
得分:0 
main()
{
struct a
{ char *b;
}k[10];
char *y[10];
int j=0;
k[j].b="lalala";
y[j]="wowowo";
printf("%s\n%s",k[j].b,y[j]);
getch();
}

k[j].b与y[j] 的意义是相同的..我想你要的就是 可以存字符串的数组吧.那就用y的形式吧!

[glow=255,violet,2]闭关修炼ing...[/glow] [FLASH=360,180]http://www./chinaren.swf[/FLASH]
2006-05-25 17:29
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 
strcpy(c[j].fac ,"某某某");     

九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2006-05-25 19:20
zhoulei906
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2006-5-8
收藏
得分:0 

-- 作者:SunShining
--
main()
{
struct a
{ char *b;
}k[10];
char *y[10];
int j=0;
k[j].b="lalala";
y[j]="wowowo";
printf("%s\n%s",k[j].b,y[j]);
getch();
}

k[j].b与y[j] 的意义是相同的..我想你要的就是 可以存字符串的数组吧.那就用y的形式吧!



谢谢了,我搞懂了你的代码,可是,我还是没有解决我的问题,呵,
我的问题请你看看,如下:

struct ft /* 第一个结构 用来存放 10 个字符串 */
{
char *fac;
}fafa[10] = { {"其它"},{"福田"},{"英达"},{"五菱"},{"现代"},{"通宝"},{"解放"},{"宝马"},{"北京"},{"东风"} };



struct ygs /* 第二个结构 用来输入数据的 */
{
struct ft fafa[10]; /* 制造厂商 */
}c[10];

int fa=0 , j=0 ;


puts("\n请选择制造厂商:");

puts("1.福田\t2.英达\t3.五菱\t4.现代\t5.通宝\t6.解放\t7.宝马\t8.北京\t9.东风\t0.(其它)");

scanf("%d",&fa);

while ( fa < 0 || fa > 9 )
{
puts("输入错误,请重新输入0-9之间数字: ");
puts("1.福田\t2.英达\t3.五菱\t4.现代\t5.通宝\t6.解放\t7.宝马\t8.北京\t9.东风\t0.(其它)");
scanf("%d",&fa);
}

printf( "%s" , c[j].fafa[fa] ) ; /* 就是这一句我不会写 ,,结果执行打印后,返回的是NULL */


新人,望各位大佬照顾一下啊!
2006-05-26 01:48
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
收藏
得分:0 

两个结构体中的fafa是不同的,一个是结构体数组,有初始值

第二个只是结构体的成员(结构体声明中),是没有值的,两个虽然名字相同,但不一样

处理办法:最简单的去掉第二个结构体,printf( "%s",fafa[fa] ) ; 即可


叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-05-26 04:49
–★–
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1512
专家分:0
注 册:2006-5-1
收藏
得分:0 
回复:(zhoulei906)[求助]字符串能否直接赋给结构实...
楼主朋友,假如C允许

struct ygs
{
char *fac[10]={"其它","福田","英达","五菱","现代","通宝","解放","宝马","北京","东风"};

} c[1000];

你可知道,这些红字将会拷贝多少份?1000份!这么多冗余信息有存在的必要么?真不知道您的详细开发计划是什么?只要不是商业机密,不妨透露一、二。

落霞与孤鹜齐飞,秋水共长天一色! 心有多大,路有多宽。三教九流,鸡鸣狗盗。兼收并蓄,海纳百川。
2006-05-26 06:33
zhoulei906
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2006-5-8
收藏
得分:0 
以下是引用Knocker在2006-5-25 19:20:00的发言:
strcpy(c[j].fac ,"某某某");


这个函数看起来不错,呵,呆会去试试,如果能用,那真是帮我了大忙了,呵!谢谢啊!



呵呵,算了,还是搞简单一点,我本来想模访我们单位那个花几K块买的<<车辆管理档案>>做一个简单的车辆(输入/查询/修改)管理程序,没难到遇到这么多问题,怎么说人家做的东东值钱呢,哈哈,咱就做不出,唉!

最后,谢各位版主了,呵!真热心啊,


新人,望各位大佬照顾一下啊!
2006-05-26 15:25
快速回复:[求助]字符串能否直接赋给结构实例数组中的char数组
数据加载中...
 
   



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

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