返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C++中的String函数怎么使用
  • 848
分享到

C++中的String函数怎么使用

2023-07-05 18:07:24 848人浏览 独家记忆
摘要

这篇文章主要介绍“c++中的String函数怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“C++中的String函数怎么使用”文章能帮助大家解决问题。一. string的构造函数的形式:st

这篇文章主要介绍“c++中的String函数怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“C++中的String函数怎么使用”文章能帮助大家解决问题。

一. string的构造函数的形式:

string str:生成空字符串string s(str):生成字符串为str的复制品string s(str, strbegin,strlen):将字符串str中从下标strbegin开始、长度为strlen的部分作为字符串初值string s(cstr, char_len):以C_string类型cstr的前char_len个字符串作为字符串s的初值string s(num ,c):生成num个c字符的字符串string s(str, stridx):将字符串str中从下标stridx开始到字符串结束的位置作为字符串初值eg:    string str1;               //生成空字符串    string str2("123456789");  //生成"1234456789"的复制品    string str3("12345", 0, 3);//结果为"123"    string str4("012345", 5);  //结果为"01234"    string str5(5, '1');       //结果为"11111"    string str6(str2, 2);      //结果为"3456789"
#include <iOStream>#include <string>using namespace std;void test1(){    string str1;               //生成空字符串    string str2("123456789");  //生成"1234456789"的复制品    string str3("12345", 0, 3);//结果为"123"    string str4("0123456", 5);  //结果为"01234"    string str5(5, '1');       //结果为"11111"    string str6(str2, 2);      //结果为"3456789"    cout<<"str2:"<<str2<<endl;    cout<<"str3:"<<str3<<endl;    cout<<"str4:"<<str4<<endl;    cout<<"str5:"<<str5<<endl;    cout<<"str6:"<<str6<<endl;}int main(){    test1();    return 0;}

C++中的String函数怎么使用

二. string的大小和容量::

1. size()和length():返回string对象的字符个数,他们执行效果相同。2. max_size():返回string对象最多包含的字符数,超出会抛出length_error异常3. capacity():重新分配内存之前,string对象能包含的最大字符数
void test2(){    string s("1234567");    cout << "size=" << s.size() << endl;    cout << "length=" << s.length() << endl;    cout << "max_size=" << s.max_size() << endl;    cout << "capacity=" << s.capacity() << endl;}

C++中的String函数怎么使用

三. string的字符串比较:

1. C ++字符串支持常见的比较操作符(>,>=,<,<=,==,!=),甚至支持string与C-string的比较(如 str<”hello”)。  在使用>,>=,<,<=这些操作符的时候是根据“当前字符特性”将字符按字典顺序进行逐一得 比较。字典排序靠前的字符小,  比较的顺序是从前向后比较,遇到不相等的字符就按这个位置上的两个字符的比较结果确定两个字符串的大小(前面减后面)同时,string (“aaaa”) <string(aaaaa)。    2. 另一个功能强大的比较函数是成员函数compare()。他支持多参数处理,支持用索引值和长度定位子串来进行比较。   他返回一个整数来表示比较结果,返回值意义如下:0:相等 1:大于 -1:小于 (A的ASCII码是65,a的ASCII码是97)
void test3(){    // (A的ASCII码是65,a的ASCII码是97)    // 前面减去后面的ASCII码,>0返回1,<0返回-1,相同返回0    string A("aBcd");    string B("Abcd");    string C("123456");    string D("123Dfg");    // "aBcd" 和 "Abcd"比较------ a > A    cout << "A.compare(B):" << A.compare(B)<< endl;                          // 结果:1    // "cd" 和 "Abcd"比较------- c > A    cout << "A.compare(2, 3, B):" <<A.compare(2, 3, B)<< endl;                // 结果:1    // "cd" 和 "cd"比较     cout << "A.compare(2, 3, B, 2, 3):" << A.compare(2, 3, B, 2, 3) << endl;  // 结果:0    // 由结果看出来:0表示下标,3表示长度    // "123" 和 "123"比较     cout << "C.compare(0, 3, D, 0, 3)" <<C.compare(0, 3, D, 0, 3) << endl;    // 结果:0}

C++中的String函数怎么使用

四. string的插入:push_back() 和 insert()

void  test4(){    string s1;    // 尾插一个字符    s1.push_back('a');    s1.push_back('b');    s1.push_back('c');    cout<<"s1:"<<s1<<endl; // s1:abc    // insert(pos,char):在制定的位置pos前插入字符char    s1.insert(s1.begin(),'1');    cout<<"s1:"<<s1<<endl; // s1:1abc}

C++中的String函数怎么使用

五、string拼接字符串:append() & + 操作符

void test5(){    // 方法一:append()    string s1("abc");    s1.append("def");    cout<<"s1:"<<s1<<endl; // s1:abcdef    // 方法二:+ 操作符    string s2 = "abc";        string s3 = "def";    s2 += s3.c_str();    cout<<"s2:"<<s2<<endl; // s2:abcdef}

C++中的String函数怎么使用

六、 string的遍历:借助迭代器 或者 下标法

void test6(){    string s1("abcdef"); // 调用一次构造函数    // 方法一: 下标法    for( int i = 0; i < s1.size() ; i++ )    {        cout<<s1[i];    }    cout<<endl;    // 方法二:正向迭代器    string::iterator iter = s1.begin();    for( ; iter < s1.end() ; iter++)    {        cout<<*iter;    }    cout<<endl;    // 方法三:反向迭代器    string::reverse_iterator riter = s1.rbegin();    for( ; riter < s1.rend() ; riter++)    {        cout<<*riter;    }    cout<<endl;}

C++中的String函数怎么使用

七、 string的删除:erase()

1. iterator erase(iterator p);//删除字符串中p所指的字符2. iterator erase(iterator first, iterator last);//删除字符串中迭代器区间[first,last)上所有字符3. string& erase(size_t pos = 0, size_t len = npos);//删除字符串中从索引位置pos开始的len个字符4. void clear();//删除字符串中所有字符
void test6(){    string s1 = "123456789";    // s1.erase(s1.begin()+1);              // 结果:13456789    // s1.erase(s1.begin()+1,s1.end()-2);   // 结果:189    s1.erase(1,6);                       // 结果:189    string::iterator iter = s1.begin();    while( iter != s1.end() )    {        cout<<*iter;        *iter++;    }    cout<<endl;}

八、 string的字符替换:

1. string& replace(size_t pos, size_t n, const char *s);//将当前字符串从pos索引开始的n个字符,替换成字符串s2. string& replace(size_t pos, size_t n, size_t n1, char c); //将当前字符串从pos索引开始的n个字符,替换成n1个字符c3. string& replace(iterator i1, iterator i2, const char* s);//将当前字符串[i1,i2)区间中的字符串替换为字符串s
void test7(){    string s1("hello,world!");    cout<<s1.size()<<endl;                     // 结果:12    s1.replace(s1.size()-1,1,1,'.');           // 结果:hello,world.    // 这里的6表示下标  5表示长度    s1.replace(6,5,"girl");                    // 结果:hello,girl.    // s1.begin(),s1.begin()+5 是左闭右开区间    s1.replace(s1.begin(),s1.begin()+5,"boy"); // 结果:boy,girl.    cout<<s1<<endl;}

九、 string的大小写转换:tolower()和toupper()函数 或者 STL中的transfORM算法

方法一:使用C语言之前的方法,使用函数,进行转换

#include <iostream>#include <string>using namespace std;int main(){    string s = "ABCDEFG";    for( int i = 0; i < s.size(); i++ )    {        s[i] = tolower(s[i]);    }    cout<<s<<endl;    return 0;}

方法二:通过STL的transform算法配合的toupper和tolower来实现该功能

#include <iostream>#include <alGorithm>#include <string>using namespace std;int main(){    string s = "ABCDEFG";    string result;    transform(s.begin(),s.end(),s.begin(),::tolower);    cout<<s<<endl;    return 0;}

十、 string的查找:find

1. size_t find (constchar* s, size_t pos = 0) const;  //在当前字符串的pos索引位置开始,查找子串s,返回找到的位置索引,    -1表示查找不到子串2. size_t find (charc, size_t pos = 0) const;  //在当前字符串的pos索引位置开始,查找字符c,返回找到的位置索引,    -1表示查找不到字符3. size_t rfind (constchar* s, size_t pos = npos) const;  //在当前字符串的pos索引位置开始,反向查找子串s,返回找到的位置索引,    -1表示查找不到子串4. size_t rfind (charc, size_t pos = npos) const;  //在当前字符串的pos索引位置开始,反向查找字符c,返回找到的位置索引,-1表示查找不到字符5. size_tfind_first_of (const char* s, size_t pos = 0) const;  //在当前字符串的pos索引位置开始,查找子串s的字符,返回找到的位置索引,-1表示查找不到字符6. size_tfind_first_not_of (const char* s, size_t pos = 0) const;  //在当前字符串的pos索引位置开始,查找第一个不位于子串s的字符,返回找到的位置索引,-1表示查找不到字符7. size_t find_last_of(const char* s, size_t pos = npos) const;  //在当前字符串的pos索引位置开始,查找最后一个位于子串s的字符,返回找到的位置索引,-1表示查找不到字符8. size_tfind_last_not_of (const char* s, size_t pos = npos) const; //在当前字符串的pos索引位置开始,查找最后一个不位于子串s的字符,返回找到的位置索引,-1表示查找不到子串
void test8(){    string s("dog bird chicken bird cat");    //字符串查找-----找到后返回首字母在字符串中的下标    // 1. 查找一个字符串    cout << s.find("chicken") << endl;        // 结果是:9    // 2. 从下标为6开始找字符'i',返回找到的第一个i的下标    cout << s.find('i',6) << endl;            // 结果是:11    // 3. 从字符串的末尾开始查找字符串,返回的还是首字母在字符串中的下标    cout << s.rfind("chicken") << endl;       // 结果是:9    // 4. 从字符串的末尾开始查找字符    cout << s.rfind('i') << endl;             // 结果是:18-------因为是从末尾开始查找,所以返回第一次找到的字符    // 5. 在该字符串中查找第一个属于字符串s的字符    cout << s.find_first_of("13br98") << endl;  // 结果是:4---b    // 6. 在该字符串中查找第一个不属于字符串s的字符------先匹配dog,然后bird匹配不到,所以打印4    cout << s.find_first_not_of("hello dog 2006") << endl; // 结果是:4    cout << s.find_first_not_of("dog bird 2006") << endl;  // 结果是:9    // 7. 在该字符串最后中查找第一个属于字符串s的字符    cout << s.find_last_of("13r98") << endl;               // 结果是:19    // 8. 在该字符串最后中查找第一个不属于字符串s的字符------先匹配t--a---c,然后空格匹配不到,所以打印21    cout << s.find_last_not_of("teac") << endl;            // 结果是:21}

十一、 string的排序:sort(s.begin(),s.end())

#include <iostream>#include <algorithm>#include <string>using namespace std;void test9(){    string s = "cdefba";    sort(s.begin(),s.end());    cout<<"s:"<<s<<endl;     // 结果:abcdef}

十二、 string的分割/截取字符串:strtok() & substr()

strtok():分割字符串

void test10(){    char str[] = "I,am,a,student; hello world!";    const char *split = ",; !";    char *p2 = strtok(str,split);    while( p2 != NULL )    {        cout<<p2<<endl;        p2 = strtok(NULL,split);    }}

C++中的String函数怎么使用

void test11(){    string s1("0123456789");    string s2 = s1.substr(2,5); // 结果:23456-----参数5表示:截取的字符串的长度    cout<<s2<<endl;}

关于“C++中的String函数怎么使用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网其他教程频道,小编每天都会为大家更新不同的知识点。

--结束END--

本文标题: C++中的String函数怎么使用

本文链接: https://lsjlt.com/news/354383.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • C++中的String函数怎么使用
    这篇文章主要介绍“C++中的String函数怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“C++中的String函数怎么使用”文章能帮助大家解决问题。一. string的构造函数的形式:st...
    99+
    2023-07-05
  • c++中string的compare函数怎么使用
    在C++中,可以使用string的compare函数来比较两个string对象的大小。该函数的原型如下: int compare(c...
    99+
    2024-03-01
    c++
  • C++中string库函数的作用是什么和怎么使用
    本文小编为大家详细介绍“C++中string库函数的作用是什么和怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“C++中string库函数的作用是什么和怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧...
    99+
    2023-06-30
  • c++中string函数用法
    c++ 中 string 函数提供字符串操作功能,包括:创建字符串:可从字面值或指定字符创建;访问字符:使用 [] 运算符或 at()/front()/back() 方法;修改字符串:使...
    99+
    2024-05-11
    c++ 标准库
  • C++中的string怎么使用
    在C++中,可以使用string类来处理字符串。首先,需要包含头文件。以下是一些常用的string操作:1. 声明和初始化strin...
    99+
    2023-08-17
    C++ string
  • string的replace函数怎么使用
    string的replace函数可以通过以下方式使用:```pythonstring.replace(old, new, count...
    99+
    2023-09-22
    string
  • c++中string的compare函数有什么用
    c++中string的compare函数用于比较两个字符串的大小关系。该函数返回一个整数值,表示两个字符串的比较结果。 具体来说,如...
    99+
    2024-03-01
    c++
  • C# String常用函数的使用详解
    目录RemoveSubstring Replace Spilt Join Append Remove Remove(int startIndex) 删除此字符串中从指定位置...
    99+
    2024-04-02
  • C++中的Lambda函数怎么使用
    这篇文章主要讲解了“C++中的Lambda函数怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C++中的Lambda函数怎么使用”吧!一 函数语法我们平时调用函数的时候,都是需要被调用...
    99+
    2023-06-22
  • c++中的seekg()函数怎么使用
    在C++中,`seekg()`函数用于将文件的读取位置移动到指定的位置。`seekg()`函数有两个参数:1. `offset`:表...
    99+
    2023-08-19
    c++ seekg()
  • C#中的DateTime函数怎么使用
    本篇内容主要讲解“C#中的DateTime函数怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#中的DateTime函数怎么使用”吧!一、初始化:DateTime dt&nbs...
    99+
    2023-07-02
  • C++中的sort()函数怎么使用
    这篇文章主要介绍“C++中的sort()函数怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“C++中的sort()函数怎么使用”文章能帮助大家解决问题。sort(v.begin(),v.end...
    99+
    2023-07-05
  • c++中的accumulate函数怎么使用
    在C++中,std::accumulate函数用于计算指定范围内元素的累积值。它需要包含头文件 <numeric>。 s...
    99+
    2024-04-02
  • vb string函数怎么使用
    VB中的字符串函数可以通过字符串对象或者字符串变量进行调用。以下是常用的字符串函数及其使用方法:1. Len:返回字符串的长度。示例...
    99+
    2023-10-11
    vb
  • C++中的string库函数常见函数的作用和使用方法
    目录前言: string库函数是什么正文1.strlen函数是什么具体用法:2.strcpy函数是什么?具体用法3.strcmp函数是什么?具体用法:4.strcat函数是什么?具体...
    99+
    2024-04-02
  • C++中replace()函数怎么使用
    这篇文章主要介绍“C++中replace()函数怎么使用”,在日常操作中,相信很多人在C++中replace()函数怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C++中replace()函数怎么使用...
    99+
    2023-06-21
  • C++中CreateFile函数怎么使用
    在C++中使用CreateFile函数来创建或打开一个文件,需要遵循以下步骤:1. 包含头文件:```cpp#include ```...
    99+
    2023-09-26
    C++
  • C++中GetAsyncKeyState函数怎么使用
    GetAsyncKeyState函数用于获取指定虚拟键的状态。它的声明如下:```cppSHORT WINAPI GetAsyncK...
    99+
    2023-09-29
    C++
  • C++中releasedc函数怎么使用
    在C++中,ReleaseDC函数用于释放设备上下文环境(Device Context,DC)。它的使用方法如下: 首先,需要获...
    99+
    2024-02-29
    C++
  • C#中的延时函数怎么使用
    本篇内容主要讲解“C#中的延时函数怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#中的延时函数怎么使用”吧!C#一些延时函数sleep延时方法System.Threading.Thre...
    99+
    2023-07-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作