找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4451|回复: 2
打印 上一主题 下一主题
收起左侧

C字符串处理问题

[复制链接]
跳转到指定楼层
楼主
ID:23743 发表于 2010-5-11 20:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
从串口,上位机发送字串到单片机接收到str1中,然后从str1中截取想要的字符串到str2中, 字符串部分拷贝函数我在Turbo C中运行得到的是正确的结果,但在单片机中测试结果很诡异 :得到的目标字符串str2的结果是正确的,但是源字符串str1的输出结果变成与str2是一样的。 一值找不到原因,哪位大哥帮忙分析一下。谢谢

两个字符串: char * str1,*str2;

字符串部分拷贝程序:

mystrcopy(char * str1,char * str2,int n1,int n2)/*字符顺序:0、1、2、3..... */

{

int k=0;

while(n2--)

{

*str2++=str1[n1+k++] ;

}

str2[n2]='\0';

}

//串口接收中断函数

void serial_receve () interrupt 4 using 3

{

if (RI)

{

unsigned char recch;

RI = 0 ; //P0 = 0x00;P2=0x00;

recch=SBUF;

if(recch!='@')

{

recstr[recNum++]=recch;

}

else

{

recstr[recNum]='\0';

mystrcopy(recstr,recdata,3,recNum-2);

if(send_string_scom(recdata))//串口发送字符串

{

recdata=NULL;recstr=NULL;

recNum=0;

read_flag= 1 ;

}

recNum=0;

}

}

}

主程序:

main()

{

....

....

str1="1234567";

while(1);

}

[此贴子已经被作者于2010-5-11 20:49:25编辑过]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:23004 发表于 2010-5-12 18:00 | 只看该作者
不是很明白你的“源字符串str1的输出结果变成与str2是一样的”是啥意思
回复

使用道具 举报

板凳
ID:24670 发表于 2010-7-9 13:46 | 只看该作者
楼主的意思应该是说:输出str1的内容跟预期输出的不一样,变成跟str2的内容一样 吧
[此贴子已经被作者于2010-7-9 13:47:43编辑过]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表