当前位置: 首页 > news >正文

zfk_蓝桥杯C++学习_语言基础_string库

一、string简介

1、string是C++标准库的重要组成部分,主要用于字符串处理。
2、使用string库需要在头文件中包括该库#include
3、string与char[]不同,string实现了高度的封装,可以很方便地完成各种字符串的操作,比如拼接、截取、匹配等等。

二、string的特点

1、字符串管理:string封装了字符串的存储和管理。它自动处理字符串的内存分配和释放,避免了手动管理内存的麻烦。
2、动态大小调整:string可以根据需要自动调整字符串的大小。在添加或删除字符时,string会自动调整内部的存储容量,确保足够的空间未容纳字符串。
3、安全性:string提供了一些方法来确保字符串的安全性。例如,它提供了越界访问检查,以避免访问超出字符串范围的字符。
4、迭代器支持:string支持迭代器,可以使用迭代器遍历字符串中的字符,进行字符级别的操作。
5、兼容性:string是C++标准库的一部分,因此在C++中广泛使用,并且与其他标准库组件和C++语言特性兼容。

三、string的声明与初始化

#include <iostream>
#include <string>
int main()
{//声明并初始化一个空字符串std::string str1;//使用字符串字面量初始化字符串std::string str2 ="Hello,World!";//使用另一个std;:string对象来初始化字符串std::string str3=str2;//使用部份字符串初始化字符串std::string str4=str2.substr(θ,5);//使用字符数组初始化字符串const char* charArray ="Hello";std::stringstr5(charArray);//使用重复的字符初始化字符串std:string str6(5,'A');//输出字符串内容std::cout << "str1: "<< str1<< std::endl; // 空std::cout << "str2: "<< str2 << std::endl; // Hello,World!std::cout << "str3: "<< str3 << std::endl; // Hello,World!std::cout << "str4: "<< str4 << std::endl; // Hellostd::cout << "str5: "<< str5 << std::endl; // Hellostd::cout << "str6: "<< str6 << std::endl; // AAAAAreturn 0;
}

四、string的基础操作

1、成员函数s_str():

用于返回一个指向以空字符结尾的C风格字符串(即const char*类型)。在进行printf输出时,需要将string转换为C风格的字符串进行输出。

#include <bits/stdc++.h>
using namespace std;
int main()
{//取消同步流ios::sync_with_stdio(e),cin.tie(e),cout.tie(θ);char buf[100];  	 //临时变量,用于输入scanf("%s",buf); //输入bufstring str(buf); //用buf来构造strprintf("str = %s\n",str.c_str(); //输出strreturn 0;
}

2、获取字符串长度(length/size):

std::string str ="Hello, World!";
int length=str.length(); // 或者int length=str.size();
std::cout <<"Length: “<< length<< std::endl;

3、拼接字符串(+或append):

std::string str1="Hello";
std::string str2 ="World!"
std::string result1 =str1 ++ str2;//使用+运算符
std::string result2 =str1.append(",").append(str2);//使用append()函数
std::cout<<"Result 1:"<<result1<< std::endl;
std::cout<<"Result 2: "<<result2 << std::endl;

4、字符串查找(find):

std::string str ="Hello,World!";
size_t pos = str.find("world"); //查找子字符串的位置
if (pos!/std::string::npos)
{std::cout << "Substring found at position:"<< pos << std::endl;
}
else 
{std::cout << "Substring not found."<< std::endl;
}

5、字符串替换(replace):

std::stringstr ="Hello,World!";
str.replace(7,5,"Universe");//替换子字符串
std::cout<<"Result:"<< str<< std::endl;

6、提取子字符串(substr):

std::string str = "Hello,World!";
std::string subStr = str.substr(7,5);//提取子字符串
std::cout << "Substring:"<< subStr << std::end;

7、字符串比较(compare):

std::string str1 = "Hello";
std::string str2 = "World";
int result = Str1 compare(str2);//比较字符串
if (result == 0)
{std::cout << "Strings are equal."<< std::endl;
}
else if(result <0)
{std::cout << "String 1 is less than String 2."<< std::endl;
}
else
{std::cout << "String 1 is greater than String 2."<< std::endl;
}

8、常用的遍历string的方法有两种:

(1)循环枚举下标
(2)auto枚举(其中&表示取引用类型,如果对i修改将会改变原来的值)

string s = "Hello";
for(int i=0 ; i<s.length();++ i) cout << s[i];
cout << '\n';
for(auto i:s)
{cout << i;i = 'a';//此处的修改无效,因为这个i是拷贝出来的,而不是引用s的
}
cout << '\n';
// 此时s="Hello"
for(auto &i:s)
{cout << i;i = 'a';
}
//此处修改会改变s的字符值
cout <<'n';
//此时s="aaaaa"
cout << s << '\n';
http://www.jsqmd.com/news/57528/

相关文章:

  • 论文解读-《Expander Graph Propagation》 - zhang
  • 论文解读-《Locality-Aware Graph-Rewiring in GNNs》 - zhang
  • Java类加载机制深度解析:从.class文件到JVM运行时
  • 20232306 2025-2026-2 《网络与系统攻防技术》实验八实验报告
  • 论文解读-《FoSR First-order spectral rewiring for addressing oversquashing in GNNs》 - zhang
  • 推荐一种手动设置异步线程等待机制的解决方案
  • 12.1每日总结
  • Java/PHP源码解析:一站式上门维修服务系统的全栈完成
  • 251201本年进入最后一个月
  • 20251201
  • 12月1号
  • 2025最新锂电池品牌/电动车锂电池厂家推荐!电动车储能电池生产厂家权威榜单,恒续能源等TOP5企业实力解析
  • 2025最新锂电池品牌推荐!电动车与储能电池优质厂家权威榜单发布,技术实力铸就行业标杆
  • 【UEFI基础】Protocol介绍
  • 清障车口碑排行:2025年最受推荐品牌TOP5,清障车/二手清障车蓝牌/重载清障车/清障车带吊/清障车企业找哪家
  • 2025年目前评价高的智能货架厂家口碑推荐,钢制货架/重载货架/仓库货架/模具架/精益管料架/背网货架/智能货架厂家榜单推荐
  • Flink - PyFlink
  • 2025年GEO公司推荐榜单,GEO服务/GEO优化AI搜索/GEO优化AI工具排名/GEO老牌厂家排行
  • STM32F103直流有刷电机速度闭环控制
  • 英语_阅读_City Park Facilities Survey_待读
  • 2025年石笼网优质供应商排名,这5家好评不断,双隔板石笼网/抗冲击抗腐蚀石笼网/锌铝合金石笼网/镀锌低碳钢丝石笼网源头厂家选哪家
  • 2025成都抖音代运营机构口碑排行榜单发布,网络营销/小红书代运营/快手代运营/GEO优化/抖音代运营/抖音代运营公司找哪家
  • 格宾石笼网2025年生产公司排名,哪家更值得选择?镀锌低碳钢丝石笼网/抗冲击抗腐蚀石笼网/格宾石笼网实力厂家选哪家
  • 2025.12.1
  • Keep dreaming, remain loving. / NOIP2025 游记
  • 2025十大私域电商核心工具:小鹅通领跑全链路生态,赋能增长新范式
  • 第四十三天
  • 哪家无人机培训机构可以考证?国内正规机构推荐
  • 明日也要加油
  • 完整教程:【图像处理】jpeg 格式详解