新人浅谈C++ string类

C++可以说时C语言的拓展,他兼容了C语言的很多优点,同时又有新的特性。

下面我们就来说一下C++里面的string类,string类是一个对字符串操作的类,在C语言中,定义字符串的方式一般为定义字符数组或指针。而在C++中,设计者将其封装到string这个类里面。方便进行一些操作。

下面我们以代码为例来进行string类型的一些常规操作进行解释说明

 1 #include <iostream>
 2 #include <stdio.h>
 3 #include <stdlib.h>
 4 
 5 using namespace std;
 6 
 7 int main(){
 8 
 9     string name1 = "xxxx";
10     string name2 = "xxxxxxxxx";
11     cout << "String name1 " << name1 << endl;
12     cout << "String name2 " << name2 << endl;
13     cout << "Size of name1 " << name1.size() << endl;
14     cout << "Size of name2 " << name2.size() << endl;
15 
16     cout << "Now we will enum the name1" << endl;
17     for(int index = 0; index != name1.length(); index++){
18 
19         cout << name1[index] << endl;
20     }
21 
22     if(name1 <= name2){
23 
24         cout << "name1 is less than name2" << endl;
25     }
26 
27     string new_str = name1 + name2 + "bbbb";
28 
29     cout << "name1 plus name2 plus bbbb equal " << new_str << endl;
30 
31 
32 }

首先,string这个类,是包含在iostream头文件的std命名空间里。下面我们针对代码中所体现的进行解释说明。

一、定义字符串:

  与定义其他类型变量一样,string name1 就是定义了一个字符串变量name1。同时可以对其进行初始化操作

  与其他类型的变量一样,string name1 = “aaaaa" ; string name1("aaaa") 均可对字符串变量进行初始化操作

二、输入输出字符串:

  string类内部已经对操作符进行了重载,可以使用 cin>> , cout<< 进行流输入和输出。

三、获取字符串长度:

  对于定义好的 string name1 = ”aaaaa“来说

  name1.length()可以获取到字符串的长度,这一点和Java很相类似,毕竟Java也叫C+-,他就是来源于C++

  name1.size()同样可以获取字符串的长度

四、字符串的比较:

  string name1 = ”aaaaa“

  string name2 = ”xxxxxxx"

  string name3  = "aaaaaaaaa"

  字符串可以进行 “==” ,“<",">",">=" "<="运算,类型内部已对运算符进行了重载,这一点可以类比于Python中的魔法方法__add__,也是相当于对运算符进行重载。

  值得注意的是,字符串的比较是相当于父与子的比较,name1可以看作name3的子串 所以name1 <= name3。不同的字符串是无法进行大小的比较。但是可以通过”==“判断了两个字符串是否相等

五、字符串的拼接和索引:

  这一个特性和python极为相似

  python可以进行字符串的拼接和索引,同样C++也可以

  string name1 = ”aaaaa“来说

  string new_str = name1 + "bbbb"

  那么new_str = "aaaaabbbb"

  如果想知道name1的第一个字符,可以采取name1[0]的方法进行索引,注意,是从零开始索引。

六、对string类型中的单个字符进行操作:

  

 

posted @ 2018-12-22 14:17  huobn  阅读(1149)  评论(0编辑  收藏  举报