首页后端开发ASP.NET关于C++中string类对象的用法总结

关于C++中string类对象的用法总结

时间2024-01-30 23:10:03发布访客分类ASP.NET浏览870
导读:收集整理的这篇文章主要介绍了关于C++中string类对象的用法总结,觉得挺不错的,现在分享给大家,也给大家做个参考。C++相对于c语言,大大增强了对字符串的支持,除了可以使用C风格的字符串,还可以使用内置的数据类型string,strin...
收集整理的这篇文章主要介绍了关于C++中string类对象的用法总结,觉得挺不错的,现在分享给大家,也给大家做个参考。

C++相对于c语言,大大增强了对字符串的支持,除了可以使用C风格的字符串,还可以使用内置的数据类型string,string类处理起来字符串因为函数的封装就显得特别方便,下面我们统计一下string类的函数

首先,想调用string类先包含其头文件#include string>

string s1;
    //变量s1只是定义但没有初始化,所以其默认值为""即空字符串string s2="Hello World!";
    //变量s2在定义时同时被初始化/*string类的变量可以相互之间直接赋值,不需要像C语言一样,使用strcpy()函数一个字符一个字符的去赋值*///例如string s3=s2;
    //此时s3的内容和s2一样也是Hello World!//如果需要定义一个由很多相同字符组成的字符串时,还有另外的简便写法string s4(int n,char c);
    //s4是被初始化为由n的字符c组成的字符串

关于求字符串的长度,在C语言中,我们就可以使用strlen()函数求,C++中同样可以使用strlen(s3);这种方法求出s3字符串的实际长度,但是因为C++关于string类与C语言有本质区别,所以我们一般调用string.length()函数来求字符串的长度

int len=0;
    len=string.length(s3);
    cout"s3字符串的长度为"lenendl;
    

在上面我们提到,如果将一个string类字符串赋值给另一个string类字符串,只需要直接赋值就可以了,但是如果是string类赋值给char*类或者是char*类赋值给string类该怎么办呢?当然是不能直接赋值的,直接看代码

//string类赋值给string类string s1="hello world";
    string s2;
    s2=s1;
    //string类赋值给char*类string s1="hello world";
char str[20]={
0}
    ;
    strcpy_s(str,s1.c_str());
    //char*类赋值给string类char str[20]="hello world";
    string s2;
    s2=str;
    

同时,string类型的变量也可以使用字符数组的操作来改变其里面的某一个变量,例如

#include iostream>
    #include string>
    string s1="this is my house";
    int i;
    //如果我们现在想改变里面某一个字符,可以直接将s1当成数组,找到对应的下标来改变i=6;
    s[i]='t';
    //这样就可以将第6个字符改成t了

有了 string 类,我们可以使用”+“或”+=“运算符来直接拼接字符串,非常方便,再也不需要使用C语言中的 strcat()、strcpy()、malloc() 等函数来拼接字符串了,再也不用担心空间不够会溢出了,用”+“来拼接字符串时,运算符的两边可以都是 string 字符串,也可以是一个 string 字符串和一个C风格的字符串,还可以是一个 string 字符串和一个 char 字符。

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迭代器之间的部分赋给字符串

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个字符cstring &
    append(const_iterator first,const_iterator last);
    //把迭代器first和last之间的部分连接到当前字符串的结尾

string的子串string substr(int pos = 0,int n = npos) const; //返回pos开始的n个字符组成的字符串

void swap(string &
    s2);
        //交换当前字符串与s2的值

string的查找

rfind() 和 find() 很类似,同样是在字符串中查找子字符串,不同的是 find() 函数从第二个参数开始往后查找,而 rfind() 函数则最多查找到第二个参数处,如果到了第二个参数所指定的下标还没有找到子字符串,则返回一个无穷大值4294967295

int find(char c, int pos = 0) const;
    //从pos开始查找字符c在当前字符串的位置int find(const char *s, int pos = 0) const;
    //从pos开始查找字符串s在当前串中的位置int find(const char *s, int pos, int n) const;
    //从pos开始查找字符串s中前n个字符在当前串中的位置int find(const string &
    s, int pos = 0) const;
    //从pos开始查找字符串s在当前串中的位置int rfind(char c, int pos = npos) const;
    //从pos开始从后向前查找字符c在当前串中的位置int rfind(const char *s, int pos = npos) const;
    int rfind(const char *s, int pos, int n = npos) const;
    int rfind(const string &
    s,int pos = npos) const;
    //从pos开始从后向前查找字符串s中前n个字符组成的字符串在当前串中的位置,成功返回所在位置,失败时返回string::npos的值

string类的插入函数:

string &
    insert(int p0, const char *s);
    string &
    insert(int p0, const char *s, int n);
    string &
    insert(int p0,const string &
    s);
    string &
    insert(int p0,const string &
    s, int pos, int n);
    //前4个函数在P0位置插入字符串s中pos开始的前n个字符string &
    insert(int p0, int n, char c);
    //此函数在p0处插入n个字符citerator insert(iterator it, char c);
    //在it处插入字符c,返回插入后迭代器的位置void insert(iterator it, const_iterator first, const_iterator last);
    //在it处插入[first,last)之间的字符void insert(iterator it, int n, char c);
    //在it处插入n个字符c

关于C++中string类对象的用法,今天讲了一点基础。

相关推荐:

标准C++中的string类的用法总结

关于c++中的引用总结

以上就是关于C++中string类对象的用法总结的详细内容,更多请关注其它相关文章!

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

上一篇: C++学习基础知识--this指针静态...下一篇:C#入门经典学习阶段小结(凌乱)猜你在找的ASP.NET相关文章 C# 一些面试试题的实例教程2022-05-16.NET 6开发TodoList应用之请求日志组件HttpLogging介绍2022-04-16.NET 6中间件Http Logging使用介绍2022-04-16gojs一些实用的高级用法2022-04-16.NET6开发TodoList应用之实现查询排序2022-04-16.NET6开发TodoList应用之实现数据塑形2022-04-16.NET微服务架构CI/CD自动打包镜像2022-04-16Asp.Net Core 使用Monaco Editor 实现代码编辑器功能2022-04-16.NET微服务架构CI/CD自动构建Jenkins+Gitee2022-04-16.Net Core微服务网关Ocelot集成Consul2022-04-16 其他相关热搜词更多phpjavapython程序员load

若转载请注明出处: 关于C++中string类对象的用法总结
本文地址: https://pptw.com/jishu/593162.html
怎样用C#打印一个n行的菱形?实战详解 聊聊调试 Node.js 代码的两种方式

游客 回复需填写必要信息