前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C++字符串详解

C++字符串详解

作者头像
楚客追梦
发布2022-11-11 19:58:51
9450
发布2022-11-11 19:58:51
举报
文章被收录于专栏:网页杂谈网页杂谈

用字符数组存放字符串容易发生数组越界的错误,而且往往难以察觉。因此,C++ 标准模板库设计了 string 数据类型,专门用于字符串处理。

string 类型的变量就是用来存放字符串的,也叫“string对象”。string 并不是 C++ 的基本数据类型,它是 C++ 标准模板库中的一个“类”。关于这一点,现在不必深究,以后会学到。这里只要学会如何使用 string 对象即可。 要使用 string 对象,必须包含头文件 <string>。

char数组:存储单字符 int数组:存储整型

字符型数组

cpp

代码语言:javascript
复制
char a[7]={'a','2','A','#','&',' '};

字符数组元素都是单个字符

字符串

cpp

代码语言:javascript
复制
char a[5]=“hello";

错误的表现形式 存储字符串的时候,数组长度要给字符串结尾’\0’留一个长度防止越界。

cpp

代码语言:javascript
复制
char a[6]=“hello";
char a[6]={“hello"};
char a[6]={'h','e','l','l','o','\0'};

字符数组的输入

输入

循环遍历将元素依次输入

cpp

代码语言:javascript
复制
char a[101];
int n;
cin>>n
for(int i=1; i<=n; i++) cin>>a[i];

直接输入

cpp

代码语言:javascript
复制
char a[101];
cin>>a;

带空格的输入

cin.getline(数组名,数组长度)

cpp

代码语言:javascript
复制
cin.getline(a,101);

gets(数组名); 头文件#include <cstdio> 注意连用cin和cin.getline()函数时,需要在中间加一个cin.ignore(); 用于清除缓存。

输出

循环遍历将元素依次输出

cpp

代码语言:javascript
复制
for(int i=0;i>n;i++) cout>>a[i];

直接输出:

cout>>a

字符数组常用函数

头文件:#include <cstring> 获取数组有效长度:strlen(数组名),strlen(a), strlen(“hello”);

  1. 将b字符数组拼接到a字符数组后

strcat(a,b)

  1. 将b字符数组复制给字符数组

strcpy(a,b)

  1. 比较a字符数组和b字符数组的大小

strcmp(a,b)

char a[4]=”abc”; char a[3]=”ad”; 对位比较大小, ASCII码大的该位大。 if(strcmp(a,b)>0) — a>b if(strcmp(a,b)==0) — a=b if(strcmp(a,b)<0) — a<b

  1. 反转函数

char a[6]=”hello”; cout<<strrev(a);

  1. 额外的函数

头文件: #include <cstype> isalnum(); 验证字母和数字 isalpha(); 验证字母 isdigit(); 验证数字 islower(); 验证小写 isupper(); 验证大写 tolower(); 转换为小写 toupper(); 转换为大写

string类型字符串

“” 0个或多个字符

声明

string a;

初始化

string a=”abc”;

不带空格输入

cin>>a

使用for循环依次输入

带空格输入

getline(cin,a);

输出

cout<<a

使用for循环依次输出

获取字符串长度函数

头文件:#include <string> length()函数

a.length();

连用cin和getline()函数时,需要在中间加一个cin.ignore();用于清除缓存。

string常用函数

头文件:#include <string>

字符串的拼接

cpp

代码语言:javascript
复制
string a,b;
a=a+b;cout<<a;

字符串的赋值

cpp

代码语言:javascript
复制
string a,b;
cin>>a;
b=a;cout<<b;

比较大小

a>=b —-> 真或者假 a==b —-> 真或者假 a<=b —-> 真或者假 a!=b —-> 真或者假

查找

cpp

代码语言:javascript
复制
str.find("ab");
//返回字符串ab在str的位置

子串

cpp

代码语言:javascript
复制
str.substr(3);
//返回[3]及以后的子串

str.substr(2,4);
//返回str[2]~str[2+(4-1)] 子串(即从[2]开始4个字符组成的字符串

替换

cpp

代码语言:javascript
复制
str.replace(2, 4, "sz");
//返回把[2]~[2+(4-1)]的内容替换为“sz”后的新字符串

.str.replace(2, 4, "abcd", 3)
//返回把[2]~[2+(4-1)]的内容替换为“abcd”前3个字符后的新字符串

插入

cpp

代码语言:javascript
复制
str.insert(2, "sz");
//从[2]位置开始添加字符串“sz”,并返回形成的新字符串

.str.insert(2, "abcd", 3)
//从[2]开始添加字符串“abcd”前3个字符,并返回形成的新字符串

.str.insert(2, "abcd", 1, 3)
//从[2]开始添加字符串“abcd”前[2]~[2+(3-1)]个字符,并返回形成的新字符串
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 字符型数组
  • 字符串
  • 字符数组的输入
    • 输入
      • 直接输入
        • 带空格的输入
          • 输出
          • 字符数组常用函数
          • string类型字符串
            • 声明
              • 初始化
                • 不带空格输入
                  • 带空格输入
                    • 输出
                      • 获取字符串长度函数
                      • string常用函数
                        • 字符串的拼接
                          • 字符串的赋值
                            • 比较大小
                              • 查找
                                • 子串
                                  • 替换
                                    • 插入
                                    相关产品与服务
                                    对象存储
                                    对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
                                    领券
                                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档