单片机c语言中的char类型char类型改错

单片机—C语言char数组和字符串赋值、拷贝、附加注意事项
说明:原创都是个人经验,本人才疏学浅,如有不妥之处切盼高手指点纠正!
今天在做单片机的一个小程序,本来以为改一改例子程序很简单,结果耗费了一一整天时间。程序中用了很多strcat函数对字符串进行拷贝,我为了增强程序的通用性,就把原来字符串的地方用char数组代替。结果出现了很多意想不到的问题,输出字符混乱,系统重启等等。经过自己分析才发现strcat函数在作怪。C程序里规定字符串数组以\0作为结束符,也就是说strcat函数的操作只有在收到结束符才停止,如果不停止则胡乱寻址,程序不错才怪呢。
strlen,strcat,strcpy等函数是以\0即0x00为结束符标识。而在实际应用中,总不能每次都在字符串后面跟个\0字符吧,在一些需要转换类型的场合很不实用。
为了摆脱这个限制,可以使用strncpy,strncat 这一类函数来操作,根据len来决定拷贝和附加的长度。以strncpy函数举例
char *strncpy ( char *dst, /* destination string */
char *src, /* source string */
int len); /* max characters to copy */)
原文的表述:The strncpy function copies at most len characters fromsrc todst. Characters are copied until a null character ('\0') is copied or untillen characters
have been copied. If the length ofsrc is less thanlen the remaining bytes in
dst are padded with null characters ('\0').
注:*pStrInf=strstr(buf,"=");//返回指针是"="的起始地址,即包含"=".
其中这里特别说明一下:strcat和strcpy的区别,都是拷贝函数,Strcat是附加在源字符串的后面,而strcpy函数是从源字符串的0地址开始拷贝!!
为了以后自己不犯错同样错误,记录下来,也希望能帮助到别人。
没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!C语言,单片机,将10进制char类型转换为16进制char类型,怎么写????_百度知道
C语言,单片机,将10进制char类型转换为16进制char类型,怎么写????
我有更好的答案
可以直接用sprintfsprintf(j, &%x&, i);但是你的字符串j定义的不对,应该是char j[10];
会提示:*** ERROR L105: PUBLIC REFERS TO IGNORED SEGMENT
这个错误!
采纳率:86%
来自团队:
为您推荐:
其他类似问题
16进制的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。单片机c语言如何把一个char型数组里的数全部快速变成0x00_百度知道
单片机c语言如何把一个char型数组里的数全部快速变成0x00
我有更好的答案
一:定义时初始化,char cArr[10]={'0x00'};二:执行时,memset(cArr, 0x00, sizeof(char)*10);三:循环语句逐个赋值cArr[i]=0x00;
如何数组里的数开始时是不同值,不循环赋值,可以一次,或两三次,就能把里面的值全变成0x00,或者是全变成0xff吗
那种情况下,就用方法二吧,调用memset()函数,要设成0xFF可以写成:memset(cArr, 0xFF, sizeof(char)*10);用memset()函数效率要比循环执行效率高,源代码也相对简洁。
采纳率:81%
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。单片机C语言编程中几种常见问题解析_百度文库
您的浏览器Javascript被禁用,需开启后体验完整功能,
赠送免券下载特权
10W篇文档免费专享
部分付费文档8折起
每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
单片机C语言编程中几种常见问题解析
助理电子商务师|
总评分3.1|
用知识赚钱
试读已结束,如果需要继续阅读或下载,敬请购买
定制HR最喜欢的简历
你可能喜欢单片机c语言编程中的一个问题,始终是搞不懂啊,代码在下面
[问题点数:20分,结帖人xiangshoucsnd]
单片机c语言编程中的一个问题,始终是搞不懂啊,代码在下面
[问题点数:20分,结帖人xiangshoucsnd]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2013年1月 硬件/嵌入开发大版内专家分月排行榜第一2012年10月 硬件/嵌入开发大版内专家分月排行榜第一2012年9月 硬件/嵌入开发大版内专家分月排行榜第一2012年8月 硬件/嵌入开发大版内专家分月排行榜第一2012年7月 硬件/嵌入开发大版内专家分月排行榜第一2012年6月 硬件/嵌入开发大版内专家分月排行榜第一2012年5月 硬件/嵌入开发大版内专家分月排行榜第一2012年4月 硬件/嵌入开发大版内专家分月排行榜第一2012年3月 硬件/嵌入开发大版内专家分月排行榜第一2012年2月 硬件/嵌入开发大版内专家分月排行榜第一2012年1月 硬件/嵌入开发大版内专家分月排行榜第一2011年11月 硬件/嵌入开发大版内专家分月排行榜第一2011年10月 硬件/嵌入开发大版内专家分月排行榜第一2011年9月 硬件/嵌入开发大版内专家分月排行榜第一
2014年10月 硬件/嵌入开发大版内专家分月排行榜第二2014年2月 硬件/嵌入开发大版内专家分月排行榜第二2013年10月 硬件/嵌入开发大版内专家分月排行榜第二2013年8月 硬件/嵌入开发大版内专家分月排行榜第二2013年3月 硬件/嵌入开发大版内专家分月排行榜第二2012年12月 硬件/嵌入开发大版内专家分月排行榜第二2012年11月 硬件/嵌入开发大版内专家分月排行榜第二2011年12月 硬件/嵌入开发大版内专家分月排行榜第二
2013年1月 硬件/嵌入开发大版内专家分月排行榜第一2012年10月 硬件/嵌入开发大版内专家分月排行榜第一2012年9月 硬件/嵌入开发大版内专家分月排行榜第一2012年8月 硬件/嵌入开发大版内专家分月排行榜第一2012年7月 硬件/嵌入开发大版内专家分月排行榜第一2012年6月 硬件/嵌入开发大版内专家分月排行榜第一2012年5月 硬件/嵌入开发大版内专家分月排行榜第一2012年4月 硬件/嵌入开发大版内专家分月排行榜第一2012年3月 硬件/嵌入开发大版内专家分月排行榜第一2012年2月 硬件/嵌入开发大版内专家分月排行榜第一2012年1月 硬件/嵌入开发大版内专家分月排行榜第一2011年11月 硬件/嵌入开发大版内专家分月排行榜第一2011年10月 硬件/嵌入开发大版内专家分月排行榜第一2011年9月 硬件/嵌入开发大版内专家分月排行榜第一
2014年10月 硬件/嵌入开发大版内专家分月排行榜第二2014年2月 硬件/嵌入开发大版内专家分月排行榜第二2013年10月 硬件/嵌入开发大版内专家分月排行榜第二2013年8月 硬件/嵌入开发大版内专家分月排行榜第二2013年3月 硬件/嵌入开发大版内专家分月排行榜第二2012年12月 硬件/嵌入开发大版内专家分月排行榜第二2012年11月 硬件/嵌入开发大版内专家分月排行榜第二2011年12月 硬件/嵌入开发大版内专家分月排行榜第二
匿名用户不能发表回复!|

我要回帖

更多关于 c语言putchar 的文章

 

随机推荐