您的位置:首页 > 其它

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。

示例:




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 }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: