我是靠谱客的博主 朴实小丸子,最近开发中收集的这篇文章主要介绍C风格字符串与string类型(整理),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述


在C++中,字符串的表示方式有两种:1、从C语言继承过来的C风格字符串;2、C++特有的string类型。在C++程序中,应尽量使用string类型,因为C风格字符串常常带来许多错误,是导致大量安全问题的根源。

字符串字面值:例如 "hello"、“123abc”等,它是以空字符‘’结束

C风格字符串:即以空字符‘’结束的字符数组,例如char a[ ] ="hello"; 等价于 char a[ ] = {'h', 'e', 'l', 'l', 'o', ''};

1C风格字符串的使用

因为C风格字符串本质上是一个字符数组,因此可以采用类似于数组的操作(如下标操作)来操纵。其次,C++语言通过(const)char*类型的指针来操纵C风格字符串,一般使用指针的算术操作符来遍历C风格字符串。例如:

在此之前,先弄明白:

char a[ ] ="hello";   //C风格字符串

char *b = a;//定义了一个char型指针b,它指向字符数组a的第一个元素

char *c ="hello";//定义了一个char型指针c,它指向字符串字面值“hello”的第一个元素

再看(const)char*类型的指针来操纵C风格字符串:

        constchar * cp = "some value";

        while(*cp){

        //do sth

        ++cp;

}

2C风格字符串的标准库函数

头文件:#include<cstring>

strlen(s)

......(函数功能,此处省略) 

strcmp(s1, s2)

 

strcat(s1, s2)

 

strcpy(s1, s2)

 

strncat(s1, s2, n)

 

strncpy(s1, s2, n)

 

3C风格字符串与数字的转换 atoi itoa函数

       头文件:#include<cstblib>

例如:atoi(“1234”)  返回结果1234;原型:int atoi(const char *nptr);

    

       int value = 1234;

       char str[20];

       itoa(value, str, 10);        //返回结果”1234”

      char *itoa( int value, char*str, int radix);[1] 

原型说明:

value:欲转换的数据。

Str:目标字符串的地址。

radix:转换后的进制数,可以是10进制、16进制等。

 

标准string类:在库<string>中定义,其定义包含在std命名空间内

头文件:#include<string>

1、  string类进行字符串处理

采取与访问数组一样的方式来访问string对象中的字符

2、 string标准类的成员函数

构造函数

 ......(函数功能,此处省略) 

string str


strint str(“sample”)

 

string str(a_string)

 

元素访问

 

str[i]

 

str.at(i)

 

str.substr(position,length)

 

赋值、修改

 

str1 = str2;

 

str1+= str2;

 

str.empty()

 

str1 + str2

 

str.insert(pos, str2);

 

str.remove(post, length);

 

比较

 

==  !=  <  >  <=  >=

 

查找

 

str.find(str1)

 

str.find(str1,pos)

 

str.find_first_of(str1,pos)

 

str.find_first_not_of(str1,pos)

 

长度

 

str.length()

 

 

String对象与C风格字符串之间的转换:

1、 string 转C

char a_cstring[] = “hello”;

string b_string;

b_string =a_string; //正确,但反过来错误

2、 C转string

Strcpy(a_cstring,b_string.c_str());  //其中c_str()为string的成员函数,返回与string调用对象对应的一个C字符串

最后

以上就是朴实小丸子为你收集整理的C风格字符串与string类型(整理)的全部内容,希望文章能够帮你解决C风格字符串与string类型(整理)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部