资源预览内容
第1页 / 共9页
第2页 / 共9页
第3页 / 共9页
第4页 / 共9页
第5页 / 共9页
第6页 / 共9页
第7页 / 共9页
第8页 / 共9页
第9页 / 共9页
亲,该文档总共9页全部预览完了,如果喜欢就下载吧!
资源描述
C语言数据类型转换1 CString,int,string,char*之间的转换 string 转 CString CString.format(%s, string.c_str(); char 转 CString CString.format(%s, char*); char 转 string string s(char *); string 转 char * const char *p = string.c_str(); CString 转 string string s(CString.GetBuffer(); 1,string - CString CString.format(%s, string.c_str(); 用 c_str()确实比 data()要好. 2,char - string string s(char *); 你的只能初始化,在不是初始化的地方最好还是用 assign(). 3,CString - string string s(CString.GetBuffer(); GetBuffer()后一定要 ReleaseBuffer(),否则就没有释放缓冲区所占的空间. C+标准函数库中说的 有三个函数可以将字符串的内容转换为字符数组和 Cstring 1.data(),返回没有”0“的字符串数组 2,c_str(),返回有”0“的字符串数组 3,copy() 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 here CString ss=1212.12; int temp=atoi(ss); CString aa; aa.Format(%d,temp); AfxMessageBox(var is + aa); sart.Format(%s,buf); CString互转 char* /char * TO cstring CString strtest; char * charpoint; charpoint=give string a value; strtest=charpoint; /cstring TO char * charpoint=strtest.GetBuffer(strtest.GetLength(); 标准 C里没有 string,char *=char =string 可以用 CString.Format(%s,char *)这个方法来将 char *转成 CString。要把 CString转成 char *,用操作符(LPCSTR)CString 就可以了。 CString转换 char100 char a100; CString str(aaaaaa); strncpy(a,(LPCTSTR)str,sizeof(a); 2 CString类型的转换成 int CString类型的转换成 int 将字符转换为整数,可以使用 atoi、_atoi64 或 atol。 /CString aaa = 16 ; /int int_chage = atoi(lpcstr)aaa) ; 而将数字转换为 CString变量,可以使用 CString的 Format函数。如 CString s; int i = 64; s.Format(%d, i) Format函数的功能很强,值得你研究一下。 如果是使用 char数组,也可以使用 sprintf函数。 /CString ss=1212.12; /int temp=atoi(ss); /CString aa; /aa.Format(%d,temp); 数字-字符串除了用 CString:Format,还有 FormatV、sprintf 和不需要借助于 Afx的 itoa 3 char* 在装 int #include int atoi(const char *nptr); long atol(const char *nptr); long long atoll(const char *nptr); long long atoq(const char *nptr); 4 CString,int,string,char*之间的转换 string aa(aaa); char *c=aa.c_str(); cannot convert from const char * to char * const char *c=aa.c_str(); 5 CString,int,string,char*之间的转换 string.c_str()只能转换成 const char *, 要转成 char *这样写: string mngName; char t200; memset(t,0,200); strcpy(t,mngName.c_str(); C语言各种数值类型转换函数常用到字符串和数字的转换,想找却发现网上的资料太散所以搜集整理一下 方便以后再用atof(将字符串转换成浮点型数)atoi(将字符串转换成整型数)atol(将字符串转换成长整型数)strtod(将字符串转换成浮点数)strtol(将字符串转换成长整型数)strtoul(将字符串转换成无符号长整型数)toascii(将整型数转换成合法的 ASCII 码字符)toupper(将小写字母转换成大写字母)tolower(将大写字母转换成小写字母)1、atof(将字符串转换成浮点型数)相关函数 atoi,atol,strtod,strtol,strtoul表头文件 #include 定义函数 double atof(const char *nptr);函数说明 atof()会扫描参数 nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时(0)才结束转换,并将结果返回。参数 nptr字符串可包含正负号、小数点或 E(e)来表示指数部分,如 123.456或 123e-2。返回值 返回转换后的浮点型数。附加说明 atof()与使用 strtod(nptr,(char*)NULL)结果相同。范例 /* 将字符串 a 与字符串 b转换成数字后相加*/#includemain()char *a=”-100.23”;char *b=”200e-2”;float c;c=atof(a)+atof(b);printf(“c=%.2fn”,c);执行 c=-98.232、atoi(将字符串转换成整型数)相关函数 atof,atol,atrtod,strtol,strtoul表头文件 #include定义函数 int atoi(const char *nptr);函数说明 atoi()会扫描参数 nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时(0)才结束转换,并将结果返回。返回值 返回转换后的整型数。附加说明 atoi()与使用 strtol(nptr,(char*)NULL,10);结果相同。范例 /* 将字符串 a 与字符串 b转换成数字后相加*/#includemian() char a=”-100”;char b=”456”;int c;c=atoi(a)+atoi(b);printf(c=%dn”,c);执行 c=3563、atol(将字符串转换成长整型数)相关函数 atof,atoi,strtod,strtol,strtoul表头文件 #include定义函数 long atol(const char *nptr);函数说明 atol()会扫描参数 nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时(0)才结束转换,并将结果返回。返回值 返回转换后的长整型数。附加说明 atol()与使用 strtol(nptr,(char*)NULL,10);结果相同。范例 /*将字符串 a与字符串 b转换成数字后相加*/#includemain()char a=”1000000000”;char b=” 234567890”;long c;c=atol(a)+atol(b);printf(“c=%dn”,c);执行 c=12345678904、gcvt(将浮点型数转换为字符串,取四舍五入)相关函数 ecvt,fcvt,sprintf表头文件 #include定义函数 char *gcvt(double number,size_t ndigits,char *buf);函数说明 gcvt()用来将参数 number转换成 ASCII码字符串,参数 ndigits表示显示的位数。gcvt()与 ecvt()和 fcvt()不同的地方在于,gcvt()所转换后的字符串包含小数点或正负符号。若转换成功,转换后的字符串会放在参数 buf指针所指的空间。返回值 返回一字符串指针,此地址即为 buf指针。附加说明范例 #includemain()double a=123.45; double b=-1234.56;char *ptr;int decpt,sign;gcvt(a,5,ptr);printf(“a value=%sn”,ptr);ptr=gcvt(b,6,ptr);printf(“b value=%sn”,ptr);执行 a value=123.45b value=-1234.565、strtod(将字符串转换成浮点数)相关函数 atoi,atol,strtod,strtol,strtoul表头文件 #include定义函数 double strtod(const char *nptr,char *endptr);函数说明 strtod()会扫描参数 nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,到出现非数字或字符串结束时(0)才结束转换,并将结果返回。若 endptr不为 NULL,则会将遇到不合条件而终止的 nptr中的字符指针由 endptr传回。参数 nptr字符串可包含正负号、小数点或 E(e)来表示指数部分。如 123.456或123e-2。返回值 返回转换后的浮点型数。附加说明 参考 atof()。范例 /*将字符串 a,b,c 分别采用 10,2,16 进制转换成数字*/#includemian()char a=”1000000000”;char b=”1000000000”;char c=”ffff”;printf(“a=%dn”,strtod(a,NULL,10);printf(“b=%dn”,strtod(b,NULL,2);printf(“c=%dn”,strtod(c,NULL,16);执行 a=1000000000b=512c=655356、strt
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号