找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 5070|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

C字符串處理問題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:23743 發(fā)表于 2010-5-11 20:45 | 只看該作者 回帖獎(jiǎng)勵(lì) |正序?yàn)g覽 |閱讀模式
從串口,上位機(jī)發(fā)送字串到單片機(jī)接收到str1中,然后從str1中截取想要的字符串到str2中, 字符串部分拷貝函數(shù)我在Turbo C中運(yùn)行得到的是正確的結(jié)果,但在單片機(jī)中測(cè)試結(jié)果很詭異 :得到的目標(biāo)字符串str2的結(jié)果是正確的,但是源字符串str1的輸出結(jié)果變成與str2是一樣的。 一值找不到原因,哪位大哥幫忙分析一下。謝謝

兩個(gè)字符串: 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';

}

//串口接收中斷函數(shù)

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))//串口發(fā)送字符串

{

recdata=NULL;recstr=NULL;

recNum=0;

read_flag= 1 ;

}

recNum=0;

}

}

}

主程序:

main()

{

....

....

str1="1234567";

while(1);

}

[此貼子已經(jīng)被作者于2010-5-11 20:49:25編輯過]
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

板凳
ID:24670 發(fā)表于 2010-7-9 13:46 | 只看該作者
樓主的意思應(yīng)該是說:輸出str1的內(nèi)容跟預(yù)期輸出的不一樣,變成跟str2的內(nèi)容一樣 吧
[此貼子已經(jīng)被作者于2010-7-9 13:47:43編輯過]
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:23004 發(fā)表于 2010-5-12 18:00 | 只看該作者
不是很明白你的“源字符串str1的輸出結(jié)果變成與str2是一樣的”是啥意思
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表