2022年C进制文本转换为ascii码_第1页
2022年C进制文本转换为ascii码_第2页
2022年C进制文本转换为ascii码_第3页
2022年C进制文本转换为ascii码_第4页
2022年C进制文本转换为ascii码_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、我用的将 16 进制文本转换为 运行程序,将得到输入;例:运行: ./CSTRING 其中,文件内容为:30:31:32 就得到的 输入文件中 012 ascii 码的 C 语言代码; 16 进制文本复制到文件中,本程序能自动跳过 0 或多个分隔符(分隔符可以为任意的符号,如“:”,“ %”或空格等,判定的函数实现见 SkipDelimiter 函数);如:输入文件内容为: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. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论