C++字符串的常用操作函数全总结(包含c)

小Q小Q 2024-06-29 15:05:03 阅读 92

文章目录

1.string、string.h和cstring的区别2.字符串定义3.求长度size()或length()4.输入字符串(四种)5.分割截取substr()4.查找指定子字符串find()5.替换字符串中的一部分replace()6.在指定位置插入字符串insert()7.复制字符串(两种方法)8.排序sort()9.删除erase()10.在字符串中添加字符push_bach()以下是C语言中字符串的操作函数:C中字符数组操作函数在C++中使用的操作方法(1)复制字符串strcpy()(2)连接字符串strcat()(3)返回字符串长度strlen()(4)比较字符串strcmp()(5)查找字符strstr()


2024.2.4最新更新

→ 10.在字符串中添加字符

1.string、string.h和cstring的区别

#include <string.h>

string.h是c语言的库,用于处理char *类型的字符串。

#include <string>

string是C++标准库的一个重要的部分-类,主要用于字符串处理。

可以使用输入输出流方式直接进行操作,也可以通过文件等手段进行操作。

#include <cstring>

cstring兼容了过去string.h的函数,但是采用了c++的写法。

2.字符串定义

#include <iostream>

#include <string>

using namespace std;

int main()

{

string str;//定义字符串变量

char s1[100];//定义字符数组

}

3.求长度size()或length()

str.length();

str.size();

length()函数返回字符串的长度. 和size()返回的数字相同.

4.输入字符串(四种)

string str;

getline(cin,str);//可以读入一行字符串,可以包含空格,遇到回车结束

char str[100];//输入字符数组

cin.getline(str,sizeof(str));//需要提前固定好输入的字符串的长度,避免输入的字符超出界限

string str;

cin>>str;//可以读入一连串的字符,遇到空格或换行(回车)结束

string str;

scanf("%s",&str);//遇到空格结束(C++中不推荐使用)

5.分割截取substr()

str.substr(7,3); // 从下标7开始截取子字符串,截取长度为3的字符串

4.查找指定子字符串find()

在字符串中查找指定子字符串,并返回其第一次出现的位置

size_t pos = str.find("World"); // 查找子字符串"World"的位置

5.替换字符串中的一部分replace()

str.replace(7, 5, "Universe"); // 替换从下标7开始的5个字符为"Universe"

6.在指定位置插入字符串insert()

str.insert(5, "Beautiful "); // 在下标5处插入字符串"Beautiful "

7.复制字符串(两种方法)

string str3(str1)//复制str到s

str3 = str1;// 复制 str1 到 str3

8.排序sort()

!!!需要头文件#include <algorithm>

string s = "12sklhfsabfskfb,a aghs 1425416 27638";

sort(s.begin(), s.end());

cout << s << endl;

//输出如下:

// ,11122234456678aaabbfffghhkklssss

9.删除erase()

使用erase()函数

string s="12345678";

s.erase(s.begin()+3);//使下标3的字符删掉

//输出

//1235678

删除后变为"1235678",即把(默认第一个下标为0)下标3的字符删掉。

10.在字符串中添加字符push_bach()

使用push_back()

在字符串后面添加字符

s.push_back('a');

以下是C语言中字符串的操作函数:

所适用的操作类型是char a[100]的字符数组

C中字符数组操作函数在C++中使用的操作方法

如果想要C++使用,需要将string类的字符串转换成c类型的字符串:

转换所需头文件#include <cstring>

转换所使用语句:

#include <iostream>

#include <cstring>

using namespace std;

int main()

{

string str = "sajkasb askjakj";

char s1[100]; // 字符数组无需转换

// str.c_str()为转换的关键语句

strcpy(s1, str.c_str()); // 复制字符串 s2 到字符串 s1。

cout << s1 << endl;

}

输出

在这里插入图片描述

(1)复制字符串strcpy()

strcpy(s1,s2);//复制s2到s1中

(2)连接字符串strcat()

strcat(s1,s2);

//连接字符串 s2 到字符串 s1 的末尾。

//连接字符串也可以用 + 号

string str1 = "runoob";

string str2 = "google";

string str = str1 + str2;

(3)返回字符串长度strlen()

strlen(s1);

(4)比较字符串strcmp()

strcmp(s1, s2);

如果 s1 和 s2 是相同的,则返回 0;如果 s1<s2 则返回值小于 0;如果 s1>s2 则返回值大于 0。

(5)查找字符strstr()

strchr(s1, ch);

返回一个指针,指向字符串 s1 中字符 ch 的第一次出现的位置。


后续学习会继续补充~~~



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。