`
gstarwd
  • 浏览: 1488221 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

string char*之类的相互转换

阅读更多

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 转  const char * 
char *p = string.c_str();
 

 //  CString转std::string
 CString str = dlg.GetPathName();
 setlocale(LC_ALL, "chs");
 char *p = new char[256];
 wcstombs( p, str, 256 );
 m_fileName = p;

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++标准函数库》中说的 
有三个函数可以将字符串的内容转换为字符数组和C—string 
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转换 char[100] 

char a[100]; 
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 <stdlib.h>
 
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 t[200]; memset(t,0,200); strcpy(t,mngName.c_str()); 

分享到:
评论

相关推荐

    ms:C str 给我们 ms 实用程序

    将诸如“15s”之类的字符串转换为秒、毫秒或微秒,并将毫秒转换为字符串(“300ms”、“5ms”)或长字符串(“5 秒”、“1 个月”)。 安装 使用安装: $ clib install clibs/ms 应用程序接口 long long string_...

    最新名企标准通用C++面试题,

    该函数被C编译器编译后在库中的名字为_foo,而C++编译器则会产生像_foo_int_int之类的名字。 C++提供了C连接交换指定符号extern“C”来解决名字匹配问题。 3、请简述以下两个for循环的优缺点(5分) for (i=0; i;...

    java发送短信之AT指令

    短信内容的存储类 /*** * CommonSms 短信用于全局变量 */ public class CommonSms{ /** id */ private int id; /**短信内容*/ private String smstext; /**短信发送方*/ private String sender;//短信...

    《你必须知道的495个C语言问题》

    *4.15 我怎样把一个int变量转换为char *型?我试了类型转换,但是不行。 52 第5章 空指针 53 空指针和空指针常量 53 5.1 臭名昭著的空指针到底是什么? 53 5.2 怎样在程序里获得一个空指针? 54 5.3 用...

    用C编写班级成绩管理系统

    #include "string.h" /*字符串函数*/ #include "conio.h" /*屏幕操作函数*/ #include "mem.h" /*内存操作函数*/ #include "ctype.h" /*字符操作函数*/ #include "alloc.h" /*动态地址分配函数*/ #include "dos....

    你必须知道的495个C语言问题

    *4.15 我怎样把一个int变量转换为char*型?我试了类型转换,但是不行。 第5章 空指针 空指针和空指针常量 5.1 臭名昭著的空指针到底是什么? 5.2 怎样在程序里获得一个空指针? 5.3 用缩写的指针比较“if...

    C语言FAQ 常见问题列表

    o 6.6 如果 NULL 定义成 #define NULL ((char *)0) 难道不就可以向函数传入不加转换的 NULL 了吗? o 6.7 如果 NULL 和 0 作为空指针常数是等价的, 那我到底该用哪一个呢? o 6.8 但是如果 NULL 的值改变了, 比如...

    新手学习C++入门资料

    当然,数字类型和指针类型也可以相互转换,但通常认为这样做是不安全而且也是没必要的。强制类型转换可以避免编译器的警告。 long int el=123; short i=(int) el; float m=34.56; int i=(int) m; 上面两个都...

    大智慧股票本地数据读取接口(含源码)

    /*请确认要转换的数据,在下面语句的%后加*变为注释取消转换*/ /*沪市*/ %FxjData2FinData(sh,dm,FinData); /*dm--证券代码,原数据集将保存为xxDM_bak*/ %FxjData2FinData(sh,cq,FinData); /*cq--除权数据*/ %FxjData...

    Java问题宝典2012版

    32、是否可以继承String类? 25 33、String s = new String("xyz");创建了几个String Object? 二者之间有什么区别? 25 34、String 和StringBuffer的区别 25 35、如何把一段逗号分割的字符串转换成一个数组? 26 36、...

    语言程序设计课后习题答案

    面向对象的编程语言将客观事物看作具有属性和行为的对象,通过抽象找出同一类对象的共同属性(静态特征)和行为(动态特征),形成类。通过类的继承与多态可以很方便地实现代码重用,大大缩短了软件开发周期,并使得...

    c++基础教程,简洁扼要

    typedef char * string_t; typedef char field [50]; 80 联合(Union) union mytypes_t { char c; int i; float f; } mytypes; 81 枚举Enumerations (enum) enum model_name { value1, value2, value3, . . } ...

    LuaBind 源码 (Lua增强库)

    能力支持函数式的定义一个Lua类,而且使之继承自C++或者Lua. Lua类可以覆写从 C++ 基类 继承来的虚函数. 她的目标平台是Lua 5.0 ,不能支持Lua 4.0 . 她利用模板原编程技术实现.这意味着,你不需要额外的预处理过程去...

    Java学习之 手撕String

    Java学习之 手撕StringJava中非常非常重要的String类所属的包继承关系String对象的构建String类的特性String类的不可变性String类中常用的方法(20+个)equals()equalsIgnoreCase()hashCode()toString()compareTo()...

    你必须知道的495个C语言问题(PDF)

    4.9 我怎样把一个int 变量转换为char * 型?我试了类型转换, 但是不 行。. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 5 空(null) 指针21 5.1 臭名昭著的空指针到底是什么? . . . . . ...

    JNI技术手册 c/c++调用java

    2) 如何将java传入的String参数转换为c的char*,然后使用? 57 3) 将c中获取的一个char*的buffer传递给java? 57 4) 不知道占用多少空间的buffer,如何传递出去呢? 58 五、 对JAVA传入数据的处理 58 1) 如果传入的是...

    c# 加密和解密相关代码

    本实例实现时主要用到了string 类的ToCharArray 方法和Convert 类的ToChar 方法,下面分别对它们进行 详细介绍。 (1)string类的ToCharArray 方法 string类的ToCharArray 方法用来将字符串中的字符复制到Unicode ...

    C# for CSDN 乱七八糟的看不懂

    可以用括号转换: short s = (short)f 也可以利用 Convert 方法来转换: string s1; s1=Convert.ToString(a); MessageBox.Show(s1); 常用 Convert 方法有: 第2页 C#(WINFORM)学习 C# Convert.ToBoolean Convert....

Global site tag (gtag.js) - Google Analytics