C风格字符串与标准库类String 区别和转换
2014-02-23 16:03
267 查看
C风格字符串与标准库类String 区别和转换。
C风格字符串可以说是以字符null结束的字符数组。
char *p=”here is a string”; //p存放在静态存储区
char p[]={‘h’, ’e’, ’r’, ’e’, ’\0’}; //存放在栈区 ,必须有’\0’作为结束符
处理C风格字符串的主要函数:添加头文件 <cstring>
Strlen(s); 返回s的长度,不包括字符串结束符null
Strcmp(s1,s2); 比较
Strcat(s1,s2); 连接 覆盖前面s1的末尾的结束符
Strcpy(s1,s2); 复制
Strncat(s1,s2,n); Strncpy(s1,s2,n);
String类实现了多种方法,包含增删改查等操作。方法很多,大多与容器的操作一致,也有自己独有的一些方法。如substr()、append()、replace()
与C风格字符串的转换: const char *str=str2.c_str(); //str2为string类型变量,const可以不要
亦可或者通过const_cast去掉其const属性
char *str=const_cast<char *>(str2.c_str());
以下部分引用:http://www.cnblogs.com/MikeZhang/archive/2012/03/24/MySplitFunCPP.html
用strtok函数进行字符串分割
原型: char *strtok(char *str, const char *delim);
功能:分解字符串为一组字符串。
参数说明:str为要分解的字符串,delim为分隔符字符串。
返回值:从str开头开始的一个个被分割的串。当没有被分割的串时则返回NULL。
示例:
C风格字符串可以说是以字符null结束的字符数组。
char *p=”here is a string”; //p存放在静态存储区
char p[]={‘h’, ’e’, ’r’, ’e’, ’\0’}; //存放在栈区 ,必须有’\0’作为结束符
处理C风格字符串的主要函数:添加头文件 <cstring>
Strlen(s); 返回s的长度,不包括字符串结束符null
Strcmp(s1,s2); 比较
Strcat(s1,s2); 连接 覆盖前面s1的末尾的结束符
Strcpy(s1,s2); 复制
Strncat(s1,s2,n); Strncpy(s1,s2,n);
String类实现了多种方法,包含增删改查等操作。方法很多,大多与容器的操作一致,也有自己独有的一些方法。如substr()、append()、replace()
与C风格字符串的转换: const char *str=str2.c_str(); //str2为string类型变量,const可以不要
亦可或者通过const_cast去掉其const属性
char *str=const_cast<char *>(str2.c_str());
以下部分引用:http://www.cnblogs.com/MikeZhang/archive/2012/03/24/MySplitFunCPP.html
用strtok函数进行字符串分割
原型: char *strtok(char *str, const char *delim);
功能:分解字符串为一组字符串。
参数说明:str为要分解的字符串,delim为分隔符字符串。
返回值:从str开头开始的一个个被分割的串。当没有被分割的串时则返回NULL。
示例:
1 //借助strtok实现split 2 #include <string.h> 3 #include <stdio.h> 4 5 int main() 6 { 7 char s[] = "Golden Global View,disk * desk"; 8 const char *d = " ,*"; 9 char *p; 10 p = strtok(s,d); 11 while(p) 12 { 13 printf("%s\n",p); 14 p=strtok(NULL,d); 15 } 16 17 return 0; 18 }
相关文章推荐
- C风格字符串和string类型的相互转换
- C++标准库的string类型与C 风格的字符串的相互转换
- char字符串数组与string之间的转换,以及sizeof,strlen,length的区别
- C风格字符串,int型,string类型相互转换
- 混合使用标准库类 string 和 C 风格字符串
- string字符串转C风格字符串 进而转换为数字
- 『C++ Primer学习笔记』Chapter 3——string对象、vector对象以及数组的配套类型,C风格字符串问题和处理区别
- (String) 和 String.valueOf() 两种字符串转换的区别
- Qt学习: 如何显示中文,QString和string以及C风格字符串的转换
- C++标准库的string类型与C 风格的字符串的相互转换
- 混合使用标准库类string和C风格字符串
- 2014-12-03:hibernate get()与load()区别,json字符串转换为json对象,String与date相互转换
- 完成一程序演示字符数组、C风格字符串、std::string和MFC中的Cstring类型之间的相互转换
- 字符数组和字符串,char 和string定义的字符串的区别与遍历
- matlab:字符串数组和string的区别
- Java中char数组(字符数组)与字符串String类型的转换方法
- C++数字转换成字符串(to_string)
- Python 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)
- std::string与CString字符串的相互转换
- 标准字符串std::string和System::String, CString之间的转换