C++ string 类的学习(不断更新)

string类是什么?

string类是由头文件string支持的,用于处理字符串的类

string类常用构造函数

1.string();//默认构造函数,建立一个长度为0的串

例:

string s1(s1为长度为0的串,可以用cin>>s1的方式将字符串(不含空格)存入s1,string的长度随着所存储的字符串的长度变化而变化,所以不用担心是否越界)

2.string(const char *s)

string s2="abc"或string s2("abc")来将字符串“abc”存入s2;

3.string(int size,char c)

创建一个包含n个元素的string对象,其中每个元素都被初始化为字符c

4.string(const string &str)

将一个string 对象初始化为string对象 str,相当于 string s=str

5.string(const char *p,int size)

char a[3]="ab";

string s(a,20);

将一个char类型的字符串的前X个字符拷贝到s里,如果X超出字符串长度,将拷贝垃圾值

6.string(begin,end)

string s(a+1,a+3)//将字符数组中第二个到第四个字符拷贝到s中去

这里如果要拷贝string类里的字符则要使用下列语句(假设有string类 a="dawga")

string s(&a[1],&a[3]),为什么要用&呢,因为对象的名称并不和字符串数组名称一样是一个地址

所以不能通过string s(a+1,a+3)来实现.

string类的输入

对于char类型有

#include<bits/stdc++.h>
using namespace std;
int main()
{
  char a[100];
  cin>>a;//遇到空格停止
  cin.get(a,100);//直到读入100个字符后才停止,遇到空格换行等字符不会停止
  cin.getline(a,100);//直到读入100个字符后才停止,或遇到换行停止
 cin.getline(a,100,':');//直到读入100个字符后才停止,或遇到":"停止
}

这里cin.get和cin.getline 只能接受char类型的字符串

对于string类型有

#include<iostream>
#include<string>
using namespace std;
int main()
{
  string a;
  cin>>a;//读入一个字符串,遇到空格停止
  getline(cin,a);//读入一行字符串,遇到换行不停止
  getline(cin,a,':');//读入一行字符串,遇到':'停止
}

string类的基本操作

s + t 将串s和串t连接成一个新串

s = t 用t更新s

s==t 判断s和t是否相等

s!=t 判断s和t是否不等

s<t 判断s是否小于t(字典序比较)

s[i]访问串中下标为i的字符

发布了37 篇原创文章 · 获赞 3 · 访问量 2394

猜你喜欢

转载自blog.csdn.net/Stillboring/article/details/104462288