如何比较字符(单字符)数组和字符串数组?

[复制链接]
 楼主| hzocce 发表于 2015-12-9 21:40 | 显示全部楼层 |阅读模式
本帖最后由 hzocce 于 2015-12-9 21:42 编辑

项目中碰到问题,比较字符和字符串数组。。需要群里的大神指点:

打个比方,如下说明:

char TX[20]; //申明一个数组用于存放串口接收到的字符串。
TX[]={'B','e','i','j','i','n','g'}; //左边为接串口实际收到的字符串

char x=10;
chay y=20;
char *StringTable[x][y]={
{"China","USA",Italy","India","Korea","Malaysia",Singapore"},

{"Tianjing","chongqing","qingdao","beijing","shenyang"},

{"dongcheng",xicheng","chaoyang","fengtai","haidian"}

}

我目前就是要对比TX[]={'B','e','i','j','i','n','g'}中的字符是否和二维数组中的某个元素是否一致。
因为一个是字符,一个为字符串,这个如何对比?

我个人认为有2个思路:
1.将TX[]={'B','e','i','j','i','n','g'}变成字符串 “Beijng” 再使用strcmp函数来对比。
可问题又来了,怎么将这个字符变成字符串? 申明的是20个元素的数组,可是只使用了bejing 这几个字符,仅占20个中的一部分。

2.自己写一个对比函数,Compare(char TbaleA,char TableB),可是这个对比函数又怎么写呢?
diweo 发表于 2015-12-10 08:28 | 显示全部楼层
研究一下strcmp的源码,你就可以得到答案了。
aerwa 发表于 2015-12-11 08:40 来自手机 | 显示全部楼层
是不是可以用联合体解决。
yjsstk 发表于 2015-12-11 10:20 | 显示全部楼层
把TX[]={'B','e','i','j','i','n','g'}加个字符串结束符,结果为这样:TX[]={'B','e','i','j','i','n','g','\0'}。这样就可以把TX看做是字符串,直接用strcmp做比较
 楼主| hzocce 发表于 2015-12-11 15:51 | 显示全部楼层
strcmp()  ?

TX[]={'B','e','i','j','i','n','g','\0'}  可以和 TXTX[]={"beijing"}  比?

结构都不一样啊??????????????????
yjsstk 发表于 2015-12-11 17:56 | 显示全部楼层
....

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×

评分

参与人数 1威望 +1 收起 理由
daodao51 + 1 很给力!

查看全部评分

 楼主| hzocce 发表于 2015-12-14 14:22 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

133

主题

617

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部