|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
整形數(shù)組和字符數(shù)組的特殊轉(zhuǎn)換 |
| 作者:gaowang 欄目:ARM技術(shù) |
有一個(gè)整形數(shù)組data[48]={1,2,3,...,48};現(xiàn)在要讓這個(gè)數(shù)組轉(zhuǎn)換成字符數(shù)組在液晶屏上顯示,又要對(duì)這個(gè)數(shù)組作刪除操作,這兩個(gè)步驟經(jīng)常進(jìn)行,我遇到的問題是,把整形數(shù)組轉(zhuǎn)換成字符數(shù)組data[]={1 2 3 ... 48}的函數(shù)一直沒有寫出來,各位有什么好方法嗎?(注意字符數(shù)組間沒有逗號(hào)只有空格,字符1和字符2之間是空格而字符12的1和2間沒有空格,以此類推,)。 |
| 2樓: | >>參與討論 |
| 作者: computer00 于 2006/7/20 15:12:00 發(fā)布:
是轉(zhuǎn)換成字符串吧? {1,2,3,4,48}轉(zhuǎn)換成"1 2 3 4 48",這樣子吧? |
|
| 3樓: | >>參與討論 |
| 作者: javie 于 2006/7/20 15:15:00 發(fā)布:
string.h里有好多函數(shù)可用 |
|
| 4樓: | >>參與討論 |
| 作者: javie 于 2006/7/20 15:17:00 發(fā)布:
刪除數(shù)組用memset(data,48,0)就行了,哈哈 |
|
| 5樓: | >>參與討論 |
| 作者: 王紫豪 于 2006/7/20 17:38:00 發(fā)布:
樓主去看sprintf |
|
| 6樓: | >>參與討論 |
| 作者: 王紫豪 于 2006/7/20 17:43:00 發(fā)布:
這段代碼可以嗎? CHAR buffer[100]; int TEMP=0; memset(buffer,'\0',sizeof(buffer); for(i=0;i<sizeof(data);i++){ TEMP=strlen(buffer); sprintf(buffer+TEMP,"%d ",data[i]); } * - 本貼最后修改時(shí)間:2006-7-21 10:04:13 修改者:王紫豪 |
|
| 7樓: | >>參與討論 |
| 作者: gaowang 于 2006/7/21 9:42:00 發(fā)布:
期待大家來探討 謝謝樓上兄弟,我一會(huì)用這種方法試試,我也用Sprintf試過,但是不行。答一樓的computer00,其實(shí)就是轉(zhuǎn)換成一個(gè)長(zhǎng)字符串,我用Ascii碼的方法試過,但是轉(zhuǎn)換的過程中,把例如整數(shù)12轉(zhuǎn)換成字符1 2了,我的目的就是轉(zhuǎn)換成{1 2 3 4 5 6 7 8 9 10 11 12 ...47 48}; 還有誰有辦法嗎? |
|
| 8樓: | >>參與討論 |
| 作者: 王紫豪 于 2006/7/21 10:06:00 發(fā)布:
樓主還找啊,我那種方法就行啊! 這是我在dev cpp下的測(cè)試! //--------------------- #include <stdio.h> #include <stdlib.h> #include <string.h> int main(void){ CHAR data[]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20}; CHAR buffer[100]; int i,TEMP=0; memset(buffer,'\0',sizeof(buffer)); for(i=0;i<sizeof(data);i++){ TEMP=strlen(buffer); sprintf(buffer+TEMP,"%d ",data[i]); } printf("%s",buffer); SYSTEM("pause"); return 0; } //------------------- 運(yùn)行結(jié)果: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 請(qǐng)按任意鍵繼續(xù). . . |
|
| 9樓: | >>參與討論 |
| 作者: gaowang 于 2006/7/21 15:40:00 發(fā)布:
有一點(diǎn)區(qū)別 樓上你定義的data是字符型 CHAR 的啊,而換成整形 uint8 行不行呢? 如果在ADS1.2下運(yùn)行此段程序不知道可行!馬上測(cè)試,謝謝~~~~~~ |
|
| 10樓: | >>參與討論 |
| 作者: 王紫豪 于 2006/7/21 16:42:00 發(fā)布:
uint8 是無符號(hào)8位,CHAR是有符號(hào)的,但是表示ascii碼一樣! 完全可以,就是我的CHAR 寫成unsigned CHAR也行,你的ads里uint8 定義的肯定是 typedef uint8 unsigned CHAR |
|
| 11樓: | >>參與討論 |
| 作者: 王紫豪 于 2006/7/21 16:44:00 發(fā)布:
看樣樓主要好好的啃 C 了! |
|
| 12樓: | >>參與討論 |
| 作者: high 于 2006/7/21 20:32:00 發(fā)布:
itoa。如果沒有庫支持,可以參考以下: /****************************************************************************** *函 數(shù) 名: myitoa *功能描述: int型轉(zhuǎn)換成字串,用于輸出. *輸入?yún)?shù): unsigned CHAR *s -- 轉(zhuǎn)換后字串地址. unsigned int n -- 待轉(zhuǎn)換的字節(jié). *返 回 值: unsigned CHAR* 轉(zhuǎn)換后字串的尾地址的下一地址.目的:方便計(jì)算轉(zhuǎn)換后字串長(zhǎng)度. *創(chuàng)建日期: 2004/12/02 *****************************************************************************/ void myitoa(CHAR *s, unsigned int n) { CHAR tmp, *str; if (!n) {*s++=0x30; *s=0; return;} for (str=s; n; *s++='0'+ n%10, n/=10); for (*s--=0,n=strlen(str); n/2; n-=2,\ tmp=*str,*str++=*s,*s--=tmp); } |
|
|
|
| 免費(fèi)注冊(cè)為維庫電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |