挺久没写博客了 所以简单写一篇。可能有错欢迎指出;
在C语言中没有字符串这一个数据类型,都是用字符数组来处理字符串,而C++也是支持这种C风格的字符串。但是对与C++来说,还提供了一种自定义数据类型-string
string是C++的标准模板库STL中的一个字符串类,包含在头文件string
中,它能方便快捷地定义,操作字符串。

1.string的定义:

首先要头文件

#include<iostream>
#include<string>
using namespace std;

其次定义

string s;
string s1="hello world";

2.string常用的函数使用介绍:

第一个是关于连接两个字符串,在C语言中我们许需要用strcat()来连接,而对于C++的话可以直接使用“ +”;
判断两个字符串是否相等;
C语言中用到的是strcmp()函数,而在C++中,可以直接用 ”<“ “>” "!="来比较即可;

#include<iostream>
#include<string>
using namespace std;
string s1;
string s2;
int main()
{
    cin>>s1;
    cin>>s2;
    if(s1<s2)
        cout<<s1<<" < "<<s2<<endl;
    else if(s1==s2)
        cout<<s1<<" = "<<s2<<endl;
    else
        cout<<s1<<" > "<<s2<<endl;
    return 0;
}

3. length()和size()函数 用来获取字符串的长度

s.length(); 和 s.size() 就可以了;
比如代码:
    cin>>s1;
    cin>>s2;
    cout<<s1.length()<<endl;
    cout<<s2.size()<<endl;

length()和size()函数这两个函数得到的字符串长度是一样的,都是没有最后的 '\0'

void swap(string &s);

4.交换函数swap()

swap()函数用于交换当前字符串与字符串“s”的值,它只用于string 类型的字符串,不能用于C语言的字符串,也就是char类型;
s.swap(s1) 这个里面的s和s1是字符串
s1.swap(s2);

用法例子:

#include<stdio.h>
#include<iostream>
#include<string.h>
using namespace std;
int main()
{
    string s1="world";
    string s2="hello";
    //char a[6]="hello";用这个会报错;
    s1.swap(s2);
    cout<<s1<<" "<<s2<<endl;//  cout&lt;&lt;s1&lt;&lt;" "&lt;&lt;s2&lt;&lt;endl;
    return 0;
}

插入

5.string的插入:push_back()函数 和 insert()函数

push_back()函数:

void test4()
{
string s1;
// 尾插一个字符
s1.push_back(‘a’);
s1.push_back(‘b’);
s1.push_back(‘c’);
cout<<“s1:”<<s1<<endl; // s1:abc

insert(pos,char):

在制定的位置pos前插入字符串

s1.insert(s1.begin(),‘1’);

cout<<“s1:”<<s1<<endl; // s1:1abc

6. 截取子串substr()函数

   s.substr(pos, n)    截取s中从pos开始(包括0)的n个字符的子串,并返回
   s.substr(pos)        截取s中从从pos开始(包括0)到末尾的所有字符的子串,并返回

7.替换子串

   s.replace(pos, n, s1)    用s1替换s中从pos开始(包括0)的n个字符的子串

8.查找子串

   s.find(s1)         查找s中第一次出现s1的位置,并返回(包括0)
   s.rfind(s1)        查找s中最后次出现s1的位置,并返回(包括0)
   s.find_first_of(s1)       查找在s1中任意一个字符在s中第一次出现的位置,并返回(包括0)
   s.find_last_of(s1)       查找在s1中任意一个字符在s中最后一次出现的位置,并返回(包括0)
   s.fin_first_not_of(s1)         查找s中第一个不属于s1中的字符的位置,并返回(包括0)
   s.fin_last_not_of(s1)         查找s中最后一个不属于s1中的字符的位置,并返回(包括0)