C++ string

C++里处理文本,首选字符串string,如果你在网上看到了用char类型数组和指针的代码,虽然看着很厉害,但是何必呢。
string他很香!

创建字符串变量

创建字符串变量的方法有五个,这里只需要大家掌握下面三个:

string s1;               //创建一个空字符串
string s3 = "World";     //给定内容创建
string s4(5, 'A');       //创建指定长度某个字符的字符串。"AAAAA"

字符串输入

cin

关于string类型的输入,cin的作用和其他类型一样,都是遇到空格或者换行结束输入。
image


getline

getline必须要掌握!!!
getline的作用是,输入一行字符串,包括这一行里的空格。遇到换行符结束一次输入。
image


cin和getline混用容易出问题

这种写法很容易出问题,所以一定要重视!
不信的话试试下面的代码:

#include<bits/stdc++.h>
using namespace std;
int main(){
	string s1,s2,s3;
	cin>>s1;
	getline(cin,s2);
	getline(cin,s3);
	cout<<"s1="<<s1<<endl;
	cout<<"s2="<<s2<<endl;
	cout<<"s3="<<s3;
	return 0;
} 

image

原因是
image

解决的办法有很多,这里推荐两种:

  • 1、统一用getline
  • 2、cin之后再加个getline,用来对第一行后面的换行做一次处理

字符串运算

字符串string支持加法运算和判断相等运算

image


image

字符串的大小比较

字符串的大小比较是按照从左向右字符的ASCII码来比较的。

字符串大小比较的例子
image
image

Are you understand?

读取字符串的一个字符

字符串可以直接当做字符数组来用。

image

获取字符串的长度

通过size()函数获取字符串的长度

image

遍历字符串

遍历字符串的原理和遍历数组的原理是一样的。通过循环变量 i 的变化依次读取每一个字符。

image

遍历字符串也是必须掌握的技能!!!

字符串的常用函数

下面的函数大家自己试一试

函数示例 作用说明 结果类型
s.empty() 获取字符串是否为空 bool
s.front() 获取首字符 char
s.back() 获取最后一个字符 char
s.append("world") 在最后追加字符串,跟+=作用类似 string
s.insert(5,"world") 在下标5的位置插入指定的字符串。注意原来下标5位置及后面的字符串会往后挪 string
s.erase(5, 3) 从下标5的位置开始,删除3个字符。如果长度不够或者不给长度,就删除到末尾 string
s.replace(6,5,"C++") 从下标6的位置开始的5个连续的字符串,替换成后面的字符串 string
s.substr(7, 3) 提取从下标7开始3个连续字符的子串。注意原字符串不变 string
s.find("abc") 从左开始,查找abc第一次出现的下标位置。如果没找到,结果就是string::npos 整数
s.rfind("abc") 从右开始,查找abc第一次出现的下标位置。如果没找到,结果就是string::npos 整数

string和其他类型的转换

把string类型转换成整数

image

把string类型转换成小数

image

把string和char字符串转换

image
这个功能用在有些函数需要传递char字符串的情况。raylib里这种函数非常常见

posted @ 2025-04-24 16:54  一亩食堂  阅读(351)  评论(0)    收藏  举报