ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:18.88KB ,
资源ID:9493471      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-9493471.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Cstring转charstringint等数据类型.docx)为本站会员(b****8)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

Cstring转charstringint等数据类型.docx

1、Cstring转charstringint等数据类型Cstring转char、string、int等数据类型的方法CString 转char *CString cstr;char *p = (LPSTR)(LPCTSTR)cstr;string 转 CStringCString.format(”%s”, string.c_str();char 转 CStringCString.format(”%s”, char*);char 转 stringstring s(char *);string 转 char *char *p = string.c_str();CString 转 stringstri

2、ng s(CString.GetBuffer();1,string - CStringCString.format(”%s”, string.c_str();用c_str()确实比data()要好.2,char - stringstring s(char *);只能初始化,在不是初始化的地方最好还是用assign().3,CString - stringstring s(CString.GetBuffer();GetBuffer()后一定要ReleaseBuffer(),否则就没有释放缓冲区所占的空间.C+标准函数库中说的有三个函数可以将字符串的内容转换为字符数组和Cstring1.data(

3、),返回没有”0“的字符串数组2,c_str(),返回有”0“的字符串数组3,copy()CString与int、char*、char100之间的转换- -CString与int、char*、char100之间的转换- -CString互转int将字符转换为整数,可以使用atoi、_atoi64或atol。而将数字转换为CString变量,可以使用CString的Format函数。如CString s;int i = 64;s.Format(”%d”, i)Format函数的功能很强,值得你研究一下。void CStrDlg:OnButton1()/ TODO: Add your contro

4、l notification handler code hereCStringss=”1212.12;int temp=atoi(ss);CString aa;aa.Format(”%d”,temp);AfxMessageBox(”var is ” + aa);sart.Format(”%s”,buf);CString互转char*/char * TO cstringCString strtest;char * charpoint;charpoint=”give string a value”;strtest=charpoint;/cstring TO char *CString 转char

5、*CString cstr;char *p = (LPSTR)(LPCTSTR)cstr;string 转 CStringCString.format(”%s”, string.c_str();char 转 CStringCString.format(”%s”, char*);char 转 stringstring s(char *);string 转 char *char *p = string.c_str();CString 转 stringstring s(CString.GetBuffer();1,string - CStringCString.format(”%s”, string.

6、c_str();用c_str()确实比data()要好.2,char - stringstring s(char *);只能初始化,在不是初始化的地方最好还是用assign().3,CString - stringstring s(CString.GetBuffer();GetBuffer()后一定要ReleaseBuffer(),否则就没有释放缓冲区所占的空间.C+标准函数库中说的有三个函数可以将字符串的内容转换为字符数组和Cstring1.data(),返回没有”0“的字符串数组2,c_str(),返回有”0“的字符串数组3,copy()CString与int、char*、char100之

7、间的转换- -CString与int、char*、char100之间的转换- -CString互转int将字符转换为整数,可以使用atoi、_atoi64或atol。而将数字转换为CString变量,可以使用CString的Format函数。如CString s;int i = 64;s.Format(”%d”, i)Format函数的功能很强,值得你研究一下。void CStrDlg:OnButton1()/ TODO: Add your control notification handler code hereCStringss=”1212.12;int temp=atoi(ss);CS

8、tring aa;aa.Format(”%d”,temp);AfxMessageBox(”var is ” + aa);sart.Format(”%s”,buf);CString互转char*/char * TO cstringCString strtest;char * charpoint;charpoint=”give string a value”;strtest=charpoint;/cstring TO char *charpoint=strtest.GetBuffer(strtest.GetLength();标准C里没有string,char *=char =string可以用CS

9、tring.Format(”%s”,char *)这个方法来将char *转成CString。要把CString转成char *,用操作符(LPCSTR)CString就可以了。CString转换 char100char a100;CString str(”aaaaaa”);strncpy(a,(LPCTSTR)str,sizeof(a);charpoint=strtest.GetBuffer(strtest.GetLength();标准C里没有string,char *=char =string可以用CString.Format(”%s”,char *)这个方法来将char *转成CStri

10、ng。要把CString转成char *,用操作符(LPCSTR)CString就可以了。CString转换 char100char a100;CString str(”aaaaaa”);strncpy(a,(LPCTSTR)str,sizeof(a);/将ASCII码转化为16进制数BYTE ASCIIToHexChar(BYTE ch) if(ch=0)&(ch=A)&(ch=a)&(ch=0)&(ch=A)&(ch=a)&(ch=f) return ch-a+10; else return -1; /16进制字符串CString 转为 BYTE 数组的方法BYTE StringToByt

11、eArray(CString str)/CString str =01 02 03 04;例如这样数据 BYTE tmpByte = 0x00; int strLen = str.GetLength(); BYTE cmd1024; /注意越界 memset(cmd, 0, sizeof(cmd); for (int i=0, j=0; isizeof(cmd),jstrLen; i+,j+) if (strj = ) +j; tmpByte = strj; cmdi = ASCIIToHexChar(tmpByte)4;/左移4位 if (str+j = ) +j; tmpByte = st

12、rj; cmdi = cmdi + (ASCIIToHexChar(tmpByte) & 0xF);/取低4位然后相加。 注释:把字符赋给BYTE,实则赋的是字符的ASCII码值,因此要先把ASCII码转化为对应的16进制数。两个字符赋给一个BYTE,就要把第一个字符放到BYTE的高4位,而第二个字符放到BYTE的低4位。中间通过判断去掉空格。 /*/ Method: HexstringToString/ FullName: HexstringToString/ Access: public / Returns: 返回处理后字符串 CString/ Qualifier: 把十六进制字符串转化常

13、规字符串/*CString HexstringToString(CString hex) CString str; int i,hlen,iData,iFlag; char ch; iData=0; iFlag=0; hlen=hex.GetLength();/int)strlen(hex); for (i=0;i=0) & (ch=a) & (ch=A) & (ch=F) ch-=0x37; else str=; if (0=iFlag) iData=ch; iFlag=1; else iData=(iData48 45 4C 4C 4F nLength可以指定为字符串的实际长度 /参数说明

14、:str-需要转换的字符串/ hex -转换后的字符串/ nLength-需要转换的字符串的长度(对不以0结束的无符号数组,需要指明长度)/返 回 值:零,成功/*int StringToHexing(const char *str, char *hex , UINT nLength) int i; for (i=0;i(int)nLength;i+) sprintf(hex+i*3,%02X ,stri&0xFF); /将字符转化为相应的十六进制表示 return 0; /*/ Method: HexstringToByteAry/ FullName: HexstringToByteAry/

15、 Access: public / Returns: int 返回转换后字节数组长度/ Qualifier: 把字符串转化字节数组/ Parameter: CString str 源十六进制字符串/ Parameter: CByteArray & data 目标字节数组/*int CTestComPortDlg:HexstringToByteAry(CString str,CByteArray &data) int t,t1; int rlen=0, len=str.GetLength(); data.SetSize(len/2); for(int i=0;i=len) break; l=st

16、ri; t=HexToChar(h); t1=HexToChar(l); if(t=16)|(t1=16) break; else t=t*16+t1; i+; datarlen=(char)t; rlen+; data.SetSize(rlen); return rlen; /*/函数:WCharToChar/功能:将16位wchar_t转换为 8位char2/参数:wcn为待转换的16位字符,ccn为转换后的8位字符/备注:wchar_t的高位字节应该存储在char数组的低位字节/*void WCharToChar(wchar_t wcn , char ccn) ccn0 = wcn 8

17、; ccn1 = (char)wcn ;/*/函数:WCharToHexstring/功能:将16位字符串转换为十六进制字符串/参数:待转换的字符串,字符串长度/返回值:转换后的字符串/*CString WCharToHexstring(CString data, long nDataLength) CString sResult(); for (long j=0; jnDataLength;j+) wchar_t ch = data.GetAt(j); char ccn2=0; /将wchar_t转换为char2 W2C(ch,ccn); static const char *hex = 0

18、123456789ABCDEF; for(int i=0;i 4) & 0x0f; unsigned char chHexB = hex(unsigned char)(ccni) & 0x0f; sResult += (char)chHexA; sResult += (char)chHexB; return sResult; /*/函数:HexstringToInt/功能:将16位字符串转换为整形/参数:待转换的字符串/返回值:转换后的数据/*int HexstringToInt(char *pstr) int length = strlen(pstr); char ex; int resul

19、t=0; int i = 0; while(length-) if (pstrlength=0) ex = pstrlength-0; else if(pstrlength=a) ex = pstrlength-a+10; result += ex*(int)pow(16,i); i +; /printf(result=%dn,result); return result; /*/函数:DecimalToHex/功能:把10进制转换成16进制字符串的函数 /*char* DecimalToHex(short n) char* p=(char*)malloc(5); char* p1=p+4;

20、*p1=0; char c=0; while (p1p) c=n%16; n/=16; if (c=10) c+=7; c+=0x30; p1-; *p1=c; return p; /*/函数:ByteToHex/功能:字节转换成十六进制字符/参数:待转换的字节, 长度/* void ByteToHex(UINT* hex,UINT n) static const UINT HEX = 0123456789ABCDEF; hex0 = HEXn / 16; hex1 = HEXn % 16; /*/函数:ByteToHex/功能:数据块转换成十六进制字符串/参数:将一块数据转化成16进制,存放

21、到 buff所指的缓冲区,len为要转换的字节个数/*void blockDataToHexstring(char * input,char * buff,int len) int cur; for (cur = 0; cur len; cur+) ByteToHex(buff+ 2 * cur,inputcur); /*/函数:ByteArrayToHex/功能:字符数组的ASC转化位16进制/参数:size为要转换的字节数组长度/备注:调用如:char asc=123;static char buf100;FormatToHex(buf,asc,sizeof(asc);输出字符串-31 3

22、2 33 00 /*void ByteArrayToHex(char *pOut,BYTE *pIn,int size) char dl,dh; for(int k=0;ksize;k+) dl=pInk & 0x0F; pOut3*k+1=(dl 4) & 0x0F; pOut3*k=(dh0xA)? dh+0x30 : dh+0x37); pOut3*k+2=0x20; /*/函数:FormatHexstring/功能:格式化显示字符串/参数:字符串起始地址input,共显示 len次,每次显示size个字符/*void FormatHexstring(char * input,int len,int size) int cur = 0; int rowcnt = 0; printf(%08dh:,rowcnt+); do printf(0x%-3.2s,input + size * cur); cur+; if (cur % 8 = 0) printf(n%08dh:,rowcnt+); while(cur len); 本函数关键是用好printf的格式化输出功能。printf(%08xh:,row_cnt+); 中的%08x,表示输出十六进制整数,宽度为8个字符,左填充0。printf(0x%-3.2s

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2