请问在C语言中怎样对结构体中的字符串进行赋值?

用strcpy函数和初始化赋值我已经知道了,我想知道还有没有其他的方法可以赋值的。例如有a,b两个指向结构体类型的指针,其中结构体中有一个含5个字符的数组charnum[... 用strcpy函数和初始化赋值我已经知道了,我想知道还有没有其他的方法可以赋值的。
例如有a,b两个指向结构体类型的指针,其中结构体中有一个含5个字符的数组char num[5]。要将b指向的结构体中的字符串赋给a指向的结构体;
我尝试的一种新方法是:
a->num[0]=b->num[0];
a->num[1]=b->num[1];
a->num[2]=b->num[2];
a->num[3]=b->num[3];
a->num[4]=b->num[4];
a->num[5]='\0';
请问还有没有更高级一点的方法?
展开
 我来答
手机用户68326
2011-03-05 · TA获得超过190个赞
知道答主
回答量:147
采纳率:0%
帮助的人:105万
展开全部
bbb,cccc" ;
string[] sArray=a.Split(",");
对应的sArray[0]就存放着aaaa
sArray[1]就存放着bbbb
依此类推
然后就是根据你的要求对结构体赋值
首先要先定义一个结构体kk
kk.te=sArray[0];
类似这样的赋值就可以了
gery_sunjian
推荐于2016-05-22
知道答主
回答量:21
采纳率:0%
帮助的人:24万
展开全部
这个要看 a 和 b 指向的结构体是否是同一类型的结构体。如果是同一个类型的结构体,那么直接 a=b 或者 memcpy((void*)a, (void*)b,sizeof(A )); 执行内存拷贝 。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
枝基长静晨
2019-02-20 · TA获得超过1118个赞
知道小有建树答主
回答量:1810
采纳率:100%
帮助的人:8.3万
展开全部
用qsort啊,我举个例子吧。。
字符串数组的
#include<algorithm>
#include<string.h>
#include<stdio.h>
int
cmp(const
void
*_a,const
void
*_b)
{
char
*a=(char
*)_a;
char
*b=(char
*)_b;
return
strcmp(a,b);
}
int
main()
{
char
a[10][80];
int
i,n;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%s",a[i]);
qsort(a,n,sizeof(char)*80,cmp);
for(i=0;i<n;i++)
printf("%s\n",a[i]);
return
0;
}
排序规则是按照string排序,字符串长度不同的,较长的字符串比较大
否则从首字母开始依次比较,当遇到字符不相等时,较大字符所在的字符串较大
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-03-04
展开全部
直接用结构体变量赋值。
例子:变量=变量。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-03-29
展开全部
在结构体中不可以像
struch student {
char name[20];
}a;
a.name="idle";
这个样子赋值。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式