关于C51的语法

aiwenwen   2008-11-16 10:26 楼主
unsigned char txt[]={"aaaaa"};
char a="aaaaa";
char b="bbbbb";

我想让txt的值为 aaaaabbbbb
请问该怎么写呢。

还有我可以对a和b进行异或运算吗?

回复评论 (5)

和C51没有关系, 基本都是C的东西.


引用: 引用楼主 LongBow007 的帖子:
unsigned char txt[]={"aaaaa"};
char a="aaaaa";  // 这种方法不对
char b="bbbbb";

我想让txt的值为 aaaaabbbbb
请问该怎么写呢。

还有我可以对a和b进行异或运算吗?


想把两个字符串连接方法很多, 可以使用库函数. 也可以通过内存直接拷贝操作...  
点赞  2008-11-16 11:11
unsigned char txt[]={"aaaaa"};
char[] a="aaaaa";
char[] b="bbbbb";
是不是这样就可以了。

怎么使用库函数或者内存直接拷贝呢。 还有可以对a和b进行异或运算吗?
点赞  2008-11-16 11:16
库函数好像是strcat()吧, 内存拷贝就是使用memcpy();
异或运算应该是可以的.
点赞  2008-11-16 11:29
unsigned char txt[]={"aaaaa"};
char a="aaaaa";
char b="bbbbb";

我想让txt的值为 aaaaabbbbb

第一个,你的TXT的空间不够。。。

会溢出,破坏你的内存其它变量的空间

最简单的办法是,定义一个足够大的TXT

请问该怎么写呢。

可以用LS说的用STRING。H里的库函数

也可以用FOR循环,一个一个赋进去


还有我可以对a和b进行异或运算吗?
可以进行异或运算

不过运算只是ASCII码值的异或
点赞  2008-11-16 11:46
第一个,你的TXT的空间不够。。。


unsigned char txt[]={"aaaaa"}和unsigned char txt[50]={"aaaaa"}不一样啊?
而且好像 unsigned char txt[100]={"aaaaa"}; 不行  提示错误:
*** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
    SYMBOL:  ?C_START
    MODULE:  STARTUP.obj (?C_STARTUP)
    ADDRESS: 000DH
Program Size: data=9.0 xdata=0 code=15
"d" - 0 Error(s), 2 Warning(s).


点赞  2008-11-16 12:14
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复