有关char* 、string、cstring 之间的区别和转换
Char* 类型讲解
1、 有关char* 是C语言保留的字符串风格
可以使用数组或者字符指针来处理字符串。
1) 数组形式
char s_array[]=“helloworld”
s_array 是地址常量,不能对其赋值:eg :s_array=”OK”
2) Char *s_pt=”this is a book”
S_pt是常指针,用它不能来改变指示的地址的值,但是它所指示的地址的值是可以通过其他方式改变的。
2、 字符串处理函数
1) 字符串长度:int strlen(const char *string)
2) 字符串复制:char* strcpy(CHAR *S1,const char * s2)
3) 字符串复制N个字符:char * strncpy(char *s1,const char* s2,int n )
4) 字符串连接:char *strcat(char * s1,const char * s2)
5) 字符串比较:int strcmp(const char * s1,const char* s2)
3、 要使用字符串处理函数必须包含#include <string.h>
4、 整形数变char*:
1)使用atoi()、itoa()、长整形的话使用atot()、 _ttoa()
2)使用sprintf(char * dst,”format”,void src)
String类型
1、 string类型是C++的标准库类型,用的时候需要包含#include<stirng>(注意不是string.h)
2、 符号”+”来连接两个string类型,类似于char*中的字符串处理函数strcat()
3、 可以用C++中容器的方法来处理string类型,eg:a.size()、a.empty()、
4、 求子字符串:string substr(int pos,[int nlen]) eg:string s3=s.substr(6,5);//从s第六个字符开始的连续的5个字符
5、 String类型转换成char*类型char * c_str():string s=”helloworld” s.c_str()
6、 Char * 类型转换成string类型:
(1)在构造string类型的时候,直接初始化就成。
(2)或者要修改已有的string类型,用string s.assign()
(3)或者是string s;s+=“helloworld“
Cstring类型
1、 要使用cstring,必须包含#include <afx.h>
2、 符号”+”来连接两个cstring类型,类似于char*中的字符串处理函数strcat()
3、 格式化字符串:cstring s.format(_T(“%d”),total)
4、 Char*变成cstring: 1)format()
2)sprint()
3)构造函数
4)“+“连接两个cstring
5、string类型变成char*:1)string str.getbuffer()