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

字符串string

作者头像
用户7272142
发布2023-11-02 09:23:35
1400
发布2023-11-02 09:23:35
举报
文章被收录于专栏:Republic博客Republic博客

概述

我们日常表示字符串 char*p = "helloworld";字符数组char szbuf[]="helloworld"; 这些方式虽然可以表示字符串,但我们经常会对字符串进行一些操作,有一些函数可以帮助处理比如,字符串的连接,比较,拷贝等等,都得借助其他函数,strcat,strcmp,strcpy 等等,既然我们学的是C++++,那么有么有一个类库。 string 是C++ STL 标准模板库提供的,所以其与C++中的各种输入输出,各种容器等都是兼容适配的,使用起来也非常方便。

string对象的定义:

string str(const char *s);    //用C语言中的字符串 s 初始化 string 对象 string str(int n, char c);     //用 n个字符c初始化 string对象 str 此外,string类还支持默认构造函数和拷贝构造函数,例如: string s1; string s2 = "hello"; string S1(S2);

字符串的相关操作

访问字符串的某个字符at()或者[]操作符访问string对象中的某个位置的字符 例如 string str = "hello"; char c = str[\1]; char c = str.at(1); 我们可以使用一个char*字符串来初始化string对象,因为有的函数需要char*而不是string对象 char*PSTR = str.c_str();

string字符串的基本信息

string 的 size() 方法返回字符串的长度 empty() 方法返回字符串是否为空。 同时 string 支持输入与输出流操作:

string字符串的赋值操作

string &operator=(const string &s);    //把字符串s赋给当前字符串 string &assign(const char *s);                //用C类型字符串s赋值 string &assign(const char *s,int n);        //用C字符串s开始的n个字符赋值 string &assign(const string &s);            //把字符串s赋给当前字符串 string &assign(int n, char c);                    //用n个字符c赋值给当前字符串 string &assign(const string &s, int start, int n);    //把字符串s中从start开始的n个字符赋给当前字符串 string &assign(const_iterator first,const_itertor last);    //把 first 和 last 迭代器之间的部分赋给字符串 平时常用的就是 = 号操作符,当然 assign 函数更灵活一些,所以大家可以选择性的使用。

string字符串的连接

string &operator+=(const string &s);    //把字符串s连接到当前字符串的结尾 string &append(const char *s);            //把c类型字符串s连接到当前字符串结尾 string &append(const char *s,int n);    //把c类型字符串s的前n个字符连接到当前字符串结尾 string &append(const string &s);    //同operator+=() string &append(const string &s,int pos,int n);    //把字符串s中从pos开始的n个字符连接到当前字符串的结尾 string &append(int n,char c);        //在当前字符串结尾添加n个字符c string &append(const_iterator first,const_iterator last);    //把迭代器first和last之间的部分连接到当前字符串的结尾 如果大家对string的赋值操作都理解了的话,那么这个连接的操作跟赋值没什么太大的区别,就是把 = 换成 +=,把 assign 换成 append 代码总览:

代码语言:javascript
复制
#include<string>
#include<iostream>
using namespace std;
int main()
{
    string lt = "mynameis";
    string str = "hello";
    cout << str<<'\n';
    string nstr = "world";
    //string nstr(str);
    //cout << nstr << '\n';
    //string nstr("world", 2);
    //cout << nstr << '\n';
    //string nstr(5, 'w');
    //cout << nstr << '\n';

    //string nstr(str, 2,3);
    //cout << nstr << '\n';
    //----
    str += nstr;
    cout << str<<endl;
    str.append("lucy");
    cout << str<<endl;
    str.append("White",3);
    cout << str<<endl;
    str.append(lt,2,4);
    cout << str<<endl;
    str.append(5,'w');
    cout << str<<endl;
}

string字符串的比较

bool operator\==(const string &s1, const string &s2) const;    //比较两个字符串是否相等 运算符 ">","<",">=","<=","!=" 均被重载用于字符串的比较;

int compare(const string &s) const;    //比较当前字符串和s的大小 int compare(int pos, int n, const string &s) const;    //比较当前字符串从pos开始的n个字符组成的字符串与s的大小 int compare(int pos, int n, const string &s, int pos2, int n2) const;    //比较当前字符串从pos开始的n个字符组成的字符串与s中pos2开始的n2个字符组成的字符串的大小 int compare(const char *s) const;    //跟C类型的字符串 s 做比较 int compare(int pos, int n, const char *s) const;    //比较当前字符串从pos开始的n个字符组成的字符串与C类型的字符串 s 的大小 int compare(int pos, int n, const char *s, int pos2) const;    //比较当前字符串从pos开始的n个字符组成的字符串与C风格字符串 s 中pos2开始的n2个字符组成的字符串的大小 compare 函数在 > 时返回1,< 时返回 -1,== 时返回 0 当然,一般情况下载比较字符串的时候直接使用 \==、>、>=、<、<=、!= 等操作符的几率会高一些,不过 compare 更细致更灵活一些。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-11-01,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

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