打印

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

[复制链接]
2207|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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做比较

使用特权

评论回复
5
hzocce|  楼主 | 2015-12-11 15:51 | 只看该作者
strcmp()  ?

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

结构都不一样啊??????????????????

使用特权

评论回复
6
yjsstk| | 2015-12-11 17:56 | 只看该作者
....

QQ截图20151211175444.png (101.54 KB )

QQ截图20151211175444.png

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
daodao51 + 1 很给力!
7
hzocce|  楼主 | 2015-12-14 14:22 | 只看该作者

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

128

主题

562

帖子

4

粉丝