CString、char*与string的区别】的更多相关文章

一. ASCII码 上个世纪60年代,美国制定了一套字符编码,对英语字符与二进制位之间的关系,做了统一规定.这被称为ASCII码,一直沿用至今.一个字节(8bit)一共 可以用来表示256种不同的状态.ASCII码一共规定了128个字符的编码,比如大写的字母A是65(二进制01000001).这128个符号(包括32个不能打印 出来的控制符号),只占用了一个字节的后面7位,最前面的1位统一规定为0. 二.非ASCII编码 英语用128个符号编码就够了,但是用来表示其他语言,128个符号是不够的.…
三者的区别 CString 是MFC或者ATL中的实现: string 是C++标准库中的实现: char* 为C编程中最常用的字符串指针,一般以’\0’为结束标志. string和CString均是字符串模板类,string为标准模板类(STL)定义的字符串类,已经纳入C++标准之中:CString(typedef CStringT<TCHAR, StrTraitMFC<TCHAR>> CString)为Visual C++中最常用的字符串类,继承自CSimpleStringT类…
char *s="string"的内容是不可以改的 void main() {     char* pStr1 = "Hello!";     char pStr2[] = "Hello!";     change(pStr1);     change(pStr2); } void change(char* pInstr) {     pInstr[0]='O'; } 两种change编译都可以通过,但发现第二个change是可以正确地修改第一个…
1.const char* p: p is a pointer to const char(char const* p 一样)   意思就是不能通过p指针来修改p指向的内容(但是内容可以修改). 2.char* p      : p is a pointer to char   意思就是可通过p指针来修改p指向的内容 3.char* const p: p is a const pointer to char   意思就是p指针是一个常指针,他指向的内存地址不能变,定义的时候就得初始化   一旦给…
'a'是char, "a"是char string,这两者都是普通的字符和字符串,和C中没什么不同 值得注意的是后者包含两个字符,末尾有一个隐身的'\0'而:string str = "a" 是C++ string 注意:C++中的char string和string不是一回事当用到了"string"这个关键词,就不是普通的字符串,而是用到了封装后的类在C++中,char仍然是一个primitive type(原始类型),而string已经经过封…
参考博客: http://blog.csdn.net/luoweifu/article/details/20242307 http://blog.csdn.net/luoweifu/article/details/20232379 <string> 与<string.h>.<cstring>的区别 <string.h> <string.h>是C版本的头文件,包含比如strcpy.strcat之类的字符串处理函数. <cstring>…
转载:https://blog.csdn.net/qian_chun_qiang/article/details/80648691 1.string与cstring有什么区别 <string>是C++标准库头文件,包含了拟容器class std::string的声明(不过class string事实上只是basic_string<char>的typedef),用于字符串操作.<cstring>是C标准库头文件<string.h>的C++标准库版本,包含了C风…
  1. c++中string到int的转换 1) 在C标准库里面,使用atoi: #include <cstdlib> #include <string> std::string text = "152"; int number = std::atoi( text.c_str() ); if (errno == ERANGE) //可能是std::errno {  //number可能由于过大或过小而不能完全存储 } else if (errno == ???…
<多字符集下> #include <string> //使用C++标准库的string类时, 定义时 std::string str; using namespace std; //同上 #include <sstream> #include <iostream> #include <stdlib.h> //要将string类和int类型直接转换最好有这些包含, //因为自己写一个转换函数比较方便,函数定义参考如下 string getstrin…
import java.util.*; class test { public static void main(String[] args) { char a[] = {'b', 'a', 'c'}; String b = "111"; f(a,b); System.out.println(Arrays.toString(a)+" "+b); } public static void f(char[] a, String b) { a[1] = 'c'; b =…
Cstring转char.string.int等数据类型的方法 (-- ::) 转载 标签: 杂谈 分类: VC CString 转char * CString cstr; char *p = (LPSTR)(LPCTSTR)cstr; string 转 CString CString.format(”%s”, string.c_str()); char 转 CString CString.format(”%s”, char*); char 转 string string s(char *);…
1.字符串 字符串本质就是一串字符,在C++中大家想到字符串往往第一反应是std::string(后面简称string) 字符串得从C语言说起,string其实是个类,C语言是没有class的,所以C语言的字符串其实就是字符数组,也就是char [ ] ,例如: char  str[10];   //定义了一个有十个元素的数组,元素类型为字符char char  str[10] = {"hello"};  //"h e l l o \0"五个字符赋给str数组, 然…
 关于字符集不一的历史原因,可以参考: UNICODE与ANSI的区别 以下是网上转载的资料.我将辅以自己的实例,说明并总结关系. 一.CString, int, string, char*之间的转换(无法区分这几个类型的把这节跳过,最后回来复习) string 转 CString  CString.Format("%s", string.c_str());char 转 CString  CString.Format("%s", char*);char 转 stri…
LL(1)分析法实验的mfc做到最后因为CString转化为string的问题卡了一个多小时,也是惨,网上各种方法找过都不行.幸亏最后还是找到几行代码搞定了.特此mark一下. USES_CONVERSION; char* s_char = W2A(m_in); inString = s_char;…
在C++中则把字符串封装成了一种数据类型string,可以直接声明变量并进行赋值等字符串操作.以下是C字符串和C++中string的区别:   C字符串 string对象(C++) 所需的头文件名称 <string>或<string.h> <string>或<string.h> 需要头文件 原因 为了使用字符串函数 为了使用string类 声明 方式 char name[20]; string name; 初始化方式 char name[20]="…
1. string转const char* string s = "abc"; const char* c_s = s.c_str(); 2. const char*转string 直接赋值即可 const char* c_s = "abc"; string s(c_s); 3. string转char* string s = "abc"; char* c; const int len = s.length(); c = new char[len…
在C++中则把字符串封装成了一种数据类型string,可以直接声明变量并进行赋值等字符串操作.以下是C字符串和C++中string的区别:   C字符串 string对象(C++) 所需的头文件名称 <string>或<string.h> <string>或<string.h> 需要头文件 原因 为了使用字符串函数 为了使用string类 声明 方式 char name[20]; string name; 初始化方式 char name[20]="…
char varchar varchar2 的区别       http://blog.csdn.net/honglei_zh/article/details/7172538区别:1.CHAR的长度是固定的,而VARCHAR2的长度是可以变化的, 比如,存储字符串“abc",对于CHAR (20),表示你存储的字符将占20个字节(包括17个空字符),而同样的VARCHAR2 (20)则只占用3个字节的长度,20只是最大值,当你存储的字符小于20时,按实际长度存储. 2.CHAR的效率比VARCH…
MFC中CString 与 std::string 相互转化 CString实际是CStringT, 也就是模板类, 在UNICODE环境下,实际是CStringW, 在多字符集环境下,实际是CStringA std::string就是多字符集的. UNICODE环境下 CStringW-->std::string CString实际是CStringW,要转换成多字符集,需进行转码.使用WideCharToMultiByte 转换成多字符集,然后再构造std::string std::strin…
第一部分: 将  char *    或者    char []   转换为  string 可以直接赋值,转换. 第二部分: 将   string   转换为 char *    或者    char [] string 是c++标准库里面其中一个,封装了对字符串的操作 把string转换为char* 有  3种方法: 1.  调用  string   的   data   函数 如: string str="abc"; char *p=str.data(); 2.调用  strin…
Convert CString to ANSI string in UNICODE projects Quick Answer: use an intermediate CStringA. Normally, this is not something that should be done. *It is technically unreliable, unless you can guarantee that the source CString to be converted does n…
AnsiString和String的区别.使用 本文转自:http://www.bianceng.cn/c/index.htm 16.C/C++语言在CB中的一些特定用法 2)AnsiString是从Delphi中引进来的吗? 答:CB的核心组件VCL是用Object Pascal语言写出的,所以CB的VCL组件的属性有很多都是使用long string,例如:Text. Name.Caption等属性都是使用Object Pascal的long string.基于此关系,CB只好建立了和Obj…
Java String 和 new String()的区别 本文转自:http://www.cnblogs.com/heima-jieqi/archive/2012/04/10/2440086.html 1.   栈(stack)与堆(heap)都是Java用来在Ram中存放数据的地方.与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆. 2.   栈的优势是,存取速度比堆要快,仅次于直接位于CPU中的寄存器.但缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性.另外,栈数…
leetcode 第17题 分析 char*和string相互转化 char*(或者char)转string 可以看看string的构造函数 default (1) string(); copy (2) string (const string& str); substring (3) string (const string& str, size_t pos, size_t len = npos); from c-string (4) string (const char* s); fr…
在C++中则把字符串封装成了一种数据类型string,可以直接声明变量并进行赋值等字符串操作.以下是C字符串和C++中string的区别:   C字符串 string对象(C++) 所需的头文件名称 <string>或<string.h> <string>或<string.h> 需要头文件原因 为了使用字符串函数 为了使用string类 声明方式 char name[20]; string name; 初始化方式 char name[20]="ni…
在学校老师就教1byte = 8bit,一个Byte在内存中占8个房间.每个房间都有门牌号.找到内存中的内容就找门牌号,寻址什么的,虽然在听,但是脑袋里一头雾水,到现在只知道会用就行,但原理也不是那么明白. 这里我记录下到现在我自己的理解,我知识有限,若有错误请见谅并指出,一起学习: 首先:计算机内部是只认识高低电平的,也就是二进制里的0和1,所有的字符串数据最终都是转换成0和1的形式存放在内存里的. 1bit就只能存放一个0或者是1,一个Byte用8个Bit表示,比如说: 0: 0000 00…
char 类型是c语言中常见的一个数据类型,string是c++中的一个,它的定义为 Strings are objects that represent sequences of characters. 由此可见string是一个char序列的对象,有时候我们经常需要混用这两个数据类型,所以有些常见的错误还是需要避免的: 比如,string的append函数只能加const char类型的,而push_back函数可以加char类型的,也可以直接用 += 来添加char类型的,如果要同时添加两…
#include "stdafx.h" #include<string> #include<vector> #include<iostream> #include<sstream> #include<stdio.h> #include<stdlib.h> using namespace std; //sstream string int2str1(int n){ ostringstream oss; oss <…
转自:http://www.jb51.net/article/23575.htm 在mysql教程中char与varchar的区别呢,都是用来存储字符串的,只是他们的保存方式不一样罢了,char有固定的长度,而varchar属于可变长的字符类型.   har与varchar的区别 : char (13)长度固定, 如'www.jb51.net' 存储需要空间 12个字符 varchar(13) 可变长 如'www.jb51.net' 需要存储空间 13字符, 从上面可以看得出来char 长度是固…
1. string转const char* string s ="abc";constchar* c_s = s.c_str(); 2. const char*转string    直接赋值即可 constchar* c_s ="abc";string s(c_s);  3. string转char* string s ="abc";char* c;constint len = s.length();c =newchar[len+1];strcp…