2022年C進(jìn)制文本轉(zhuǎn)換為ascii碼_第1頁(yè)
2022年C進(jìn)制文本轉(zhuǎn)換為ascii碼_第2頁(yè)
2022年C進(jìn)制文本轉(zhuǎn)換為ascii碼_第3頁(yè)
2022年C進(jìn)制文本轉(zhuǎn)換為ascii碼_第4頁(yè)
2022年C進(jìn)制文本轉(zhuǎn)換為ascii碼_第5頁(yè)
已閱讀5頁(yè),還剩1頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、我用的將 16 進(jìn)制文本轉(zhuǎn)換為 運(yùn)行程序,將得到輸入;例:運(yùn)行: ./CSTRING 其中,文件內(nèi)容為:30:31:32 就得到的 輸入文件中 012 ascii 碼的 C 語(yǔ)言代碼; 16 進(jìn)制文本復(fù)制到文件中,本程序能自動(dòng)跳過(guò) 0 或多個(gè)分隔符(分隔符可以為任意的符號(hào),如“:”,“ %”或空格等,判定的函數(shù)實(shí)現(xiàn)見(jiàn) SkipDelimiter 函數(shù));如:輸入文件內(nèi)容為:30 31 32 或303132 得到的都是012 cpp1. #include2. #include3. #include4. #include5. #include6. #include7. #include8. #in

2、clude9. typedef unsigned char uint8;10. uint8ConverseOneCharuint8ucChar11. 12. uint8ucTmp=0 x00;13. printf oneucChar=0 x%xn , char ucChar;14. switch ucChar15. 16. case 0 :17. ucTmp=0 x00;18. break ;19. case 1 :20. ucTmp=0 x01;21. break ;22. case 2 :23. ucTmp=0 x02;24. break ;25. case 3 :26. ucTmp=0

3、x03;27. break ;28. case 4 :29. ucTmp=0 x04;30. break ;31. case 5 :32. ucTmp=0 x05;33. break ;34. case 6 :35. ucTmp=0 x06;36. break ;37. case 7 :38. ucTmp=0 x07;39. break ;40. case 8 :41. ucTmp=0 x08;42. break ;43. case 9 :44. ucTmp=0 x09;45. break ;46. case a :47. case A :48. ucTmp=0 x0a;49. break ;

4、50. case b :51. case B :52. ucTmp=0 x0b;53. break ;54. case c :55. case C :56. ucTmp=0 x0c;57. break ;58. case d :59.case D :r;n+60.ucTmp=0 x0d;61.break ;62.case e:63.case E :64.ucTmp=0 x0e;65.break ;66.case f:67.case F:68.ucTmp=0 x0f;69.break ;70.default:71.printferrchar.n;72.return-1;73.74.returnu

5、cTmp;75.76.uint8GetOneCharuint8*pucBuf77.78.uint8ucChar=0 x00;79.if NULL=pucBuf80.81.printfparaisNULL.n;82.return-1;83.84.ucChar=ConverseOneCharpucBuf0;85.printffirstucChar=0 x%xn, char ucChar;86.ucChar=4;87.ucChar|=ConverseOneCharpucBuf1;88.printfseconducChar=%c0 x%xn, char ucChar,ucChar;89.returnu

6、cChar;90.91.int SkipDelimiteruint8*pcB n=0;94.char *pcBufTmp=char *pcBuf;95.for n=0;pcBufTmpn.=0&pcBufTmpn.=n&pcBufTmpn.=96.97.if pcBufTmpn=098.|pcBufTmpn=199.|pcBufTmpn=2100.|pcBufTmpn=3101.|pcBufTmpn=4102.|pcBufTmpn=5103.|pcBufTmpn=6104.|pcBufTmpn=7intiSrcFileLen,unsignedchar *pucDstBuf

7、105.|pcBufTmpn=8106.|pcBufTmpn=9107.|pcBufTmpn=A |pcBufTmpn=a108.|pcBufTmpn=B |pcBufTmpn=b109.|pcBufTmpn=C |pcBufTmpn=c110.|pcBufTmpn=D |pcBufTmpn=d111.|pcBufTmpn=E |pcBufTmpn=e112.|pcBufTmpn=F |pcBufTmpn=f113.114.break ;115.116.117.returnn;118.119.int ParseHexStringunsignedchar *pucSrcBuf,120.121.u

8、int8*pucSrcTmp=NULL;122.uint8*pucDstTmp=NULL;123.uint8ucTmp=0;124.int iFileLenRemain=iSrcFileLen;125.int iDelimiterNum=0;126.int n=0;127.if NULL=pucSrcBuf|NULL=pucSrcBuf128.129.printfpara1or2isNULL.n;130.return-1;131.132.pucSrcTmp=pucSrcBuf;133.pucDstTmp=pucDstBuf;134.while iFileLenRemain.=0135.136.

9、ucTmp=GetOneCharpucSrcTmp;137.printfucTmp=%cn , char ucTmp;138.pucDstTmpn+=ucTmp;139.pucSrcTmp+=2;140.iDelimiterNum=SkipDelimiterpucSrcTmp;141.printfiDelimiterNum=%dn,iDelimiterNum;142.pucSrcTmp+=iDelimiterNum;143.iFileLenRemain-=2+iDelimiterNum;144.145.returnn;146.147.int main intargc,char *argv148

10、.149. int iRet=0;150. char *pcFileForChange=NULL;151. int iSrcFd=0;152. int iDstFd=0;153. int iSrcFileLen=0;154. int n=0;155. unsigned char *pucSrcBuf=NULL;156. unsigned char *pucDstBuf=NULL;157. if argc.=2158. 159. printf youneedinputthefilenametochange.n ;160. return-1;161. 162. pcFileForChange=ar

11、gv1;163. printf filename:%sn ,pcFileForChange;164. iSrcFd=openpcFileForChange,O_RDONLY;165. if iSrcFd0166. 167. printf openfile:%sfaild.n ,pcFileForChange;168. return-1;169. 170. iDstFd=open ,O_RDWR|O_CREAT|O_TRUNC,0644;171. if iDstFd0172. 173. printf openchangefilenamefilefaild.n ;174. return-1;175

12、. 176. iSrcFileLen=lseekiSrcFd,0,SEEK_END;177. printf FileLen:%dn ,iSrcFileLen;178. lseekiSrcFd,0,SEEK_SET;179. pucSrcBuf=mallociSrcFileLen+1024;180. pucDstBuf=mallociSrcFileLen;181. memsetpucSrcBuf,0,iSrcFileLen;182. memsetpucDstBuf,0,iSrcFileLen;183. iRet=readiSrcFd,pucSrcBuf,iSrcFileLen;184. if iRet.=iSrcFileLen185. 186. printf readerr,readlen=%dn ,iRet;187. return-1;188. 189. printf read:%sn ,pucSrcBuf;190. n=ParseHexStringpucSrcBuf,iSrcFileLen,pu

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論