0

0

C++ 中字符串的使用

黄舟

黄舟

发布时间:2017-02-06 13:35:04

|

1723人浏览过

|

来源于php中文网

原创

当我们一开始使用c语言来处理字符串的时候,会感觉非常的麻烦。c语言中缺少相应的字符串处理函数,如果想要实现某个字符串功能,只能靠我们自己来实现。但是当来到c++中,字符串的处理就会变得异常简单。今天我们就来学习一下c++中最高频的字符串处理函数。示例代码上传至:https://github.com/chenyufeng1991/cppstring。

首先要引入C++中的字符串头文件:

#include 

请注意,这里的头文件是没有.h的,否则就成了C语言中的头文件了。

(1)创建字符串

创建字符串有好几种构造方式,最典型的方式就是使用复制构造函数,

立即学习C++免费学习笔记(深入)”;

string str("chenyufeng",3);  
cout << str << endl;

cout 拷贝原先的字符串开头处的3个字符最为最新的字符串。打印结果为che.

string str2("chenyufeng",2,3);  
cout << str2 << endl;

cout 拷贝原先字符串index=2开始处的3个字符最为新的字符串。打印结果为eny。

// = :字符串赋值  
str2 = "Robert";  
cout << str2 << endl;

同样也可以用直接赋值的方式为某个变量赋值字符串,使用”=“。打印结果为Robert.

(2)swap:交换两个字符串的值

// swap:交换两个字符串的值  
  string string1 = "chen";  
   string string2 = "yufeng";  
   swap(string1, string2);  
   cout << "string1 = " << string1 << ";string2 = " << string2 << endl;

打印结果就已经和原先的字符串的值交换了。

(3)+,append :添加字符串

// += ,append:在尾部添加字符串  
   string stringOrigin = "chen";  
    string stringAppend = "yufeng";  
    stringOrigin = stringOrigin + stringAppend;  
    cout << "stringOrigin = " << stringOrigin << endl;  
  
    stringOrigin.append("_OK");  
    cout << "stringOriginAppend = " << stringOrigin << endl;

注意,添加字符串操作是会修改原先的字符串的。可以直接使用+号进行字符串的添加,非常方便。

(4)insert:在指定位置插入字符串

// insert:在指定position插入字符串  
  string stringInsertOrigin = "chenyufeng";  
    stringInsertOrigin.insert(3, "__");  
    cout << "stringInsertOrigin = " << stringInsertOrigin << endl;

上述代码可以在indx=3位置插入__下划线,打印结果为 che__nyufeng.

(5)erase,clear删除字符串

// erase: 删除字符 
  string stringEraseOrigin = "chenyufeng";  
   stringEraseOrigin.erase();  
   cout << "stringEraseOrigin = " << stringEraseOrigin << endl;  
  
  
   // clear :删除全部字符  
  string stringClearOrigin = "chenyufeng";  
   stringClearOrigin.clear();  
   cout << "stringClearOrigin = " << stringClearOrigin << endl;

上述操作其实都是把字符串清空了。

(6)replace:替换字符串

// replace: 替换字符串,某个pos位置开始的size个字符替换成后面的“”字符串  
   string stringReplaceOrigin = "chenyufeng";  
    stringReplaceOrigin.replace(3, 2, "66");  
    cout << "stringReplaceOrigin = " << stringReplaceOrigin << endl;

上述代码把字符串从index=3开始的2个字符替换成”66“,打印结果为che66ufeng.

mallcloud商城
mallcloud商城

mallcloud商城基于SpringBoot2.x、SpringCloud和SpringCloudAlibaba并采用前后端分离vue的企业级微服务敏捷开发系统架构。并引入组件化的思想实现高内聚低耦合,项目代码简洁注释丰富上手容易,适合学习和企业中使用。真正实现了基于RBAC、jwt和oauth2的无状态统一权限认证的解决方案,面向互联网设计同时适合B端和C端用户,支持CI/CD多环境部署,并提

下载

(7)==,,  =: 比较字符串大小

C++中使用这种运算符对字符串进行操作,其实都是用了运算符重载。字符串比较大小是根据字母的字典序或者说是ASCII码值按顺序比较大小。直到比较出两个字符串的不同字母或者比较到某个字符串的最后一位停止。

// ==,<,>,<=,>=:比较字符串  
  string stringLeft = "zhen";  
   string stringRight = "yufeng";  
   if (stringLeft == stringRight)  
   {  
       cout << "equal" << endl;  
   }  
  
   if (stringLeft != stringRight)  
   {  
       cout << "not equal" << endl;  
   }  
  
   if (stringLeft < stringRight)  
   {  
       cout << "stringLeft < stringRight" << endl;  
   }  
  
   if (stringLeft > stringRight)  
   {  
       cout << "stringLeft > stringRight" << endl;  
   }

(8)size,length:计算字符串长度

这里的计算字符串长度和C语言中不同,是不包括末尾的的,计算的是真实的长度。

// size(), length():计算字符串长度  
   string stringCount = "chenyufeng";  
    cout << "stringSize = " << stringCount.size() << endl;  
    cout << "stringLength = " << stringCount.length() << endl;

上述的打印结果都是10.

(9)empty:判断字符串是否为空

// empty():判断字符串是否为空  
  string stringIsEmpty = "";  
    string stringNotEmpty = "chen";  
    if (stringIsEmpty.empty())  
    {  
        cout << "stringIsEmpty == empty" << endl;  
    }  
    else  
    {  
        cout << "stringIsEmpty != empty" << endl;  
    }  
  
    if (stringNotEmpty.empty())  
    {  
        cout << "stringNotEmpty == empty" << endl;  
    }  
    else  
    {  
        cout << "stringNotEmpty != empty" << endl;  
    }

(10)字符串的输入输出流

// 输入输出stream  
  cout << "请输入一个字符串"<> stringInput;  
    cout << "stringInput = " << stringInput << endl;

字符串也可以类似于C++其他数据类型一样使用输入输出流。可以使用回车键结束输入流。

(11)max_size:字符串的最大可容纳量。

// max_size:  
  string stringMaxSize;  
    cout << "stringMaxSize = " << stringMaxSize.max_size() << endl;

打印结果为:18446744073709551599  。表示该字符串可以容纳这么多的字符数。

(12)[], at :元素存取与修改

// [],at() :元素存取  
  string stringAt = "chenyufeng";  
    cout << "stringAt[3] = " <// compare()  
   string stringCompare = "chenyufeng";  
    int aaa = stringCompare.compare("chen"); // > 0  
    int bbb = stringCompare.compare("chenyufeng"); // == 0  
    int ccc = stringCompare.compare("done"); // < 0  
    cout << "aaa = " << aaa << ";bbb = " << bbb << ";ccc = " << ccc << endl;

(14)substr:取子字符串

// substr  
   string stringSubstr = "chenyufeng";  
   // 从索引为4开始的3个字符 
    cout << "stringSubstr.substr(4,3) = " << stringSubstr.substr(4,3) << endl;  
  
   // 从索引为4开始的所有字符  
  cout << "stringSubstr.substr(4) = " <// find   
  string stringFind = "chenyufeng";  
    stringFind.find('n');  
    cout << "stringFind.find('n') = " << stringFind.find('n') << endl;  
  
    cout << "stringFind.find_first_of('e') = " << stringFind.find_first_of('e') << endl;  
      
    cout << "stringFind.find_last_of('e') = " << stringFind.find_last_of('e') << endl;

默认find函数是返回某个字符第一次出现的下标index。find_first_of和find_last_of则分别是第一次和最后一次出现某个字符的index。

以上就是C++ 中字符串的使用的内容,更多相关内容请关注PHP中文网(www.php.cn)!

相关文章

c++速学教程(入门到精通)
c++速学教程(入门到精通)

c++怎么学习?c++怎么入门?c++在哪学?c++怎么学才快?不用担心,这里为大家提供了c++速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

c++

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
C++ 设计模式与软件架构
C++ 设计模式与软件架构

本专题深入讲解 C++ 中的常见设计模式与架构优化,包括单例模式、工厂模式、观察者模式、策略模式、命令模式等,结合实际案例展示如何在 C++ 项目中应用这些模式提升代码可维护性与扩展性。通过案例分析,帮助开发者掌握 如何运用设计模式构建高质量的软件架构,提升系统的灵活性与可扩展性。

14

2026.01.30

c++ 字符串格式化
c++ 字符串格式化

本专题整合了c++字符串格式化用法、输出技巧、实践等等内容,阅读专题下面的文章了解更多详细内容。

9

2026.01.30

java 字符串格式化
java 字符串格式化

本专题整合了java如何进行字符串格式化相关教程、使用解析、方法详解等等内容。阅读专题下面的文章了解更多详细教程。

12

2026.01.30

python 字符串格式化
python 字符串格式化

本专题整合了python字符串格式化教程、实践、方法、进阶等等相关内容,阅读专题下面的文章了解更多详细操作。

4

2026.01.30

java入门学习合集
java入门学习合集

本专题整合了java入门学习指南、初学者项目实战、入门到精通等等内容,阅读专题下面的文章了解更多详细学习方法。

20

2026.01.29

java配置环境变量教程合集
java配置环境变量教程合集

本专题整合了java配置环境变量设置、步骤、安装jdk、避免冲突等等相关内容,阅读专题下面的文章了解更多详细操作。

18

2026.01.29

java成品学习网站推荐大全
java成品学习网站推荐大全

本专题整合了java成品网站、在线成品网站源码、源码入口等等相关内容,阅读专题下面的文章了解更多详细推荐内容。

19

2026.01.29

Java字符串处理使用教程合集
Java字符串处理使用教程合集

本专题整合了Java字符串截取、处理、使用、实战等等教程内容,阅读专题下面的文章了解详细操作教程。

3

2026.01.29

Java空对象相关教程合集
Java空对象相关教程合集

本专题整合了Java空对象相关教程,阅读专题下面的文章了解更多详细内容。

6

2026.01.29

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
C# 教程
C# 教程

共94课时 | 8万人学习

C 教程
C 教程

共75课时 | 4.3万人学习

C++教程
C++教程

共115课时 | 14.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号