首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C++のString类

C++のString类

作者头像
leoay
发布2019-12-27 11:16:58
5710
发布2019-12-27 11:16:58
举报
文章被收录于专栏:leoayleoay

题图:NoCopy

字数:1191 | 2分钟读完我1小时的思考

今天的文章没有按时发布(原定早上7:00),跟大家说个抱歉,由于昨天晚上下班回到家就开始忙着建我们的网站(后续很多学习资源将会同步上去),一忙起来就忽略了时间,然后写到晚上1点多没写完,本以为早上6点起来继续写能写完,但是“低风险创业”这个话题内容比较多所以没来得及发布,还请各位海涵,后续我会分配好任务时间,避免再出现这样的失误!

一篇文章(C++の命名空间namespace)我们介绍了C++中的命名空间的用法,接下来我们介绍第二个话题String类。

2、String类

我觉得String这个没什么好说的,但是在C++中用的比较多,所以还是简单过一下吧。

1、C++中的string不同于C中的string

C语言中没有字符串的概念,实际上是字符数组,但是C中有个头文件"string.h",提供了字符数串拼接、拷贝、比较等函数接口。而C++中string是字符串类,在使用时需要包含string头文件,由于string是std命名空间下的类,所以也需要引入std命名空间,下面是示例代码:

#include <string>
using std::string;

2、C++中string对象的定义与初始化

C++中string类提供了多种方式初始化一个字符串对象:

string str1;    //默认的初始化,str1是一个空字符串
string str2(str1);    //使用拷贝构造函数利用已知字符串初始化
string str21 = str1;
string str2 = ("Hello World!");
string str3("HelloWorld");

3、C++ string 对象的操作符(以字符串s为例)

os << s                    //将s写到输出流os中
is >> s                    //将输入流写到s中
getline(is,  s)            //从is中读取一行到s中
s.empty()                  //判断字符串s是否空
s.size()                   //获取字符串s的大小
s1 == s2                   //比较字符串s1是否等于字符串s2
s1 + s2                    //将字符串s1和s2拼接成一个新额字符串

从命令行读取输入,存到字符串:

#include <iostream>
int main()
{
  std::string line;
  while (getline(cin, line))
    if (line.size() > 1024)
      cout << line << endl;
  return 0;
}

4、C++ string 中字符的处理方法

C++中string是一个类,能够创建字符串对象,而字符串是由一个个字符组成,那么有没有操作字符的方式呢?

当然有!我们可以判断字符串中是否有空格,也可以改变字符串中字符的大小写等。

这些操作都定义在头文件"cctype"中

下面简单罗列几个cctype中定义的一些string中操作字符串的方法:

isalnum(c)  //判断字符c是否是字母或数字
isalpha(c)  //判断字符c是否是一个字母
iscntrl(c)  //判断c是否是一个控制字符
isdigit(c)  //判断c是否是一个数字
isspace(c)  //判断c是否是一个空格  等价于  c == '

注意这里的"cctype"就是C++中使用C标准的头文件的写法,等价于"ctype.h"

除此之外,我们也可以使用范围for对字符串中的字符进行遍历。

比如:

//遍历字符串,将所有字符转为大写字母
#include <iostream>
#include <cctype>

int main()
{
    std::string str("Hello World!");
    for (auto &c : str)
        c = toupper(c);
    return 0;
}

好了, string类就写到这里,如果你对这篇文章有什么疑问,欢迎评论区留言

下篇文章我们学一下vector这个C++中常用的类,vector也是本系列文章讲到的第一个容器类,和模板类。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-12-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 leoay 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档