#include<iostream>
#include<string>
using namespace std;int main()
{//string构造函数string str1;cout << str1.c_str() << endl; //c_str 返回一个const char *的头指针string str2(5, 'a'); //第一个参数是一个size_t 的类型,第二个参数是一个字符类型cout << str2.c_str() << endl; string str3("luojianyi"); //第二种构造函数cout << str3.c_str() << endl;string str4("abcdefg", 3); //第一个参数是const char *的类型,然后第二个是取得第一个参数的前几个cout << str4.c_str() << endl;string str5(str3, 1, 5); //第一个参数是一个string类型,第二和第三个参数是一个范围cout << str5.c_str() << endl;string str6(str3); //拷贝构造函数cout << str6.c_str() << endl;//string 的重载运算符string str7;cin >> str7;cout << str7 << endl;cout << str7[3] << endl;cout << str7.at(3) << endl;return 0;
}

View Code

#include<iostream>
#include<string>
using namespace std;int main()
{string str1(5, 'w');//指定下标的修改str1[1] = 'a';str1.at(2) = 'b';cout << str1.c_str() << endl;//中间插入//way 1string str2("abcdefg");string str3("lllll");str2.insert(2,str3); //在str2下标为2的地方插入str3cout << str2.c_str() << endl;//way 2string str4("abcdef");string str5("abcdefg");str4.insert(3, str5, 0, 2); //将str5的0  1 下标插入到str4的下标的3位置cout << str4.c_str() << endl;//way 3string str6("abcdef");str6.insert(3, 5, 'v');  //在str6下标为3的地方插入5个‘v’cout << str6.c_str() << endl;//尾巴插入//way 1 重载+=运算符string str7("aaaaa");string str8("bbbbb");str7 += str8;cout << str7.c_str() << endl;str7 += "ccccc";cout << str7.c_str() << endl;//appendstring str9("aaaaa");str9.append("bbbbb");cout << str9.c_str() << endl;//append 还有其他添加方式,需要的时候可以去查询//重新赋值// 重新 =// cin>>// 使用assign方法//eraser方法string str10("abcdefg");str10.erase(2, 3); //从下标为2的地方擦除3个元素cout << str10.c_str() << endl;return 0;
}

View Code

#include<iostream>
#include<string>
using namespace std;int main()
{string str1("abc");string str2("abcd");//比较函数 重载运算符 cout << (str1 > str2) << endl; //这里使用运算符进行比较的时候需要加上括号//compare 函数cout << str1.compare(str2) << endl;//比较函数的定义//从两个字符串第一个开始按照ascii码进行比较//abc 和 abcd 前三个字符都是相等的,的那个比较第四个字符的时候,前面的字符串已经没有了,所以后面一个字符串大//abc 和 av  当比较到第二个字符的时候,v 大于 b 所以后面一个字符串大return 0;
}

View Code

#include<iostream>
#include<string>
using namespace std;int main()
{//查找string str1("abcdef");string str2("bc");cout << str1.find(str2, 0) << endl; //从str1的下标0开始寻找str2
    cout << str1.find(str2, 2) << endl; //从str1的下标2开始寻找str2cout << (int)str1.find(str2, 2) << endl; //将上面一条语句返回的结果强转为int//返回子串string str3("abcdefg");cout << str3.substr(2, 3) << endl; //从下标为2开始返回三个字符子串//交换string str4("abc");string str5("abcde");str5.swap(str4);cout << str4 << endl;cout << str5 << endl;return 0;
}

View Code

#include<iostream>
#include<string>
using namespace std;int main()
{//使用迭代器遍历string结构string str1("123456789");string::iterator ite;//way 1ite = str1.begin();for (rsize_t i = 0; i < str1.size(); i++){cout << *ite << " ";ite++;}cout << endl;//way 2ite = str1.begin();for (rsize_t i = 0; i < str1.size(); i++){cout << ite[i] << " ";}cout << endl;//way 3for (ite = str1.begin(); ite != str1.end(); ite++){cout << *ite << " ";}cout << endl;//补充 我们可以通过迭代器访问元素,也可以使用迭代器修改元素string str2("aaaaaaaaaaa");string::iterator ite1;ite1 = str2.begin();ite1[3] = 'b';cout << str2 << endl;//跌倒器失效,但我们给一个迭代器绑定了一个容器,当容器扩容的时候其实就是相当于重新申请了内存空间,这个时候我们原来绑定的迭代器就会失效,需要重新绑定return 0;
}

View Code

#include<iostream>
#include<string>
using namespace std;int main()
{string str1("abc");string str2("def");str1.append(str2.begin(), str2.begin() + 3);cout << str1 << endl;string str3("abc");string str4("def");str3.append(str4.begin(), str4.end());cout << str3 << endl;return 0;
}

View Code

#include<iostream>
#include<string>
#include<algorithm>
#include<functional>
using namespace std;void fun(char ch)
{cout << ch << " ";
}
int main()
{string str1("37428797934748");for_each(str1.begin(), str1.end(), fun);//前两个参数是范围,第三个参数是一个操作函数//使用了一个算法 所以要包含 algorithm 头文件cout << endl;//排序sort(str1.begin(), str1.end());  //默认从小到大排序
    for_each(str1.begin(), str1.end(), fun);cout << endl;sort(str1.begin(), str1.end(), greater<char>());//第三个参数是仿函数 需要添加一个头文件 functional
    for_each(str1.begin(), str1.end(), fun);cout << endl;return 0;
}

View Code

转载于:https://www.cnblogs.com/luojianyi/p/9614879.html

STL---string相关推荐

  1. C++ 笔记(22)— STL string 类(字符串赋值、访问、拼接、查找、翻转、大小写转换)

    1. 实例化和赋值 STL string #include <string> #include <iostream>int main () {using namespace s ...

  2. stl string 函数_使用C ++ STL中的string :: append()函数将文本追加到字符串

    stl string 函数 append() is a library function of <string> header, it is used to append the extr ...

  3. c++ string类_C++|细说STL string类概貌及底层细节

    C语言中的字符串称为C风格字符串,是一个以'0'结尾的字符数组,string.h库只提供了有限.不甚安全的字符串操作函数.char str[]只能定义编译期确定大小的字符串,而保存在堆内存的动态字符数 ...

  4. 深入剖析 linux GCC 4.4 的 STL string

    转自: 深入剖析 linux GCC 4.4 的 STL string 本文通过研究STL源码来剖析C++中标准模板块库std::string运行机理,重点研究了其中的引用计数和Copy-On-Wri ...

  5. 详细解说STL string

    详细解说STL string 详细解说STL string 0 前言: string 的角色 1 string 使用 1.1 充分使用string 操作符 1.2 眼花缭乱的string find 函 ...

  6. 字符编码详解及利用C++ STL string遍历中文字符串

    作者:非妃是公主 专栏:<笔记><C++> 博客地址:https://blog.csdn.net/myf_666 个性签:顺境不惰,逆境不馁,以心制境,万事可成.--曾国藩 文 ...

  7. (转)详细解说STL string

    详细解说STL string 详细解说STL string 0 前言: string 的角色 1 string 使用 1.1 充分使用string 操作符 1.2 眼花缭乱的string find 函 ...

  8. stl string 源代码分析

    STL中string的源码解读 Ryan peng cutezero@163.com Sunday, June 03, 2007 这是个人最近比较闲暇之余,对SGI STL中string分析,如果有任 ...

  9. stl string常用函数

    原文地址:http://hi.baidu.com/baowup/blog/item/3a27465c86d71546faf2c066.html/cmtid/de1ef3f0de7554a0a40f52 ...

  10. stl string的erase方法

    for (i = 0; i < s.size(); i++){if (s[i] == '0'){s.erase(i,1);i--;}} 删除string中的所有0. 转载于:https://ww ...

最新文章

  1. mysql relay log_windows下mysql主从出现Failed to open the relay log(relay_log_pos 248)解决办法...
  2. 白话Elasticsearch67-不随意调节jvm和thread pool的原因jvm和服务器内存分配的最佳实践
  3. 快速幂模板(java)
  4. C语言 memset()函数(内存初始化函数)
  5. vim折叠的使用方法
  6. cassandra 入门_Apache Cassandra和Java入门(第二部分)
  7. 华为ECS云服务器 Ubuntu 安装和配置FTP教程
  8. java判断闰年通过多态方法_04748《Java语言程序设计》实验指导书.doc
  9. “练好内功坚持被集成”,阿里云发布SaaS加速器
  10. 骨牌覆盖(51Nod-1031)
  11. 智能会议系统(23)---移动端视频通话开源软件比较
  12. 中药说明书实体识别抽取top1
  13. CSS 布局 - 水平 amp;amp; 垂直对齐,全面的水平垂直居中方案
  14. 成都阿里技术一面后感,给广大码友的一些小建议
  15. vs2010开发android教程,用Visual Studio 2010开发Android应用
  16. 计算机潮流计算代码,潮流计算代码c++.doc
  17. java可达性_java 垃圾回收总结(可达性分析 引用分类
  18. nested exception is java.lang.NumberFormatException: For input string: NaN
  19. 美图android手机刷机教程,美图手机如何刷机
  20. windows密码到期_如何在Windows 10中设置密码到期日期

热门文章

  1. nagios监控windows USBKEY
  2. tfs 点获取最新,如果检查到大量冲突
  3. Oracle 序列的创建和使用
  4. 201671010128 2017-11-05《Java程序设计》之集合
  5. Git 工作流的正确打开方式
  6. 克莱门特公司在俄罗斯一个数据中心安装其新型冷却系统
  7. 探究chrome下的开发工具的各功能
  8. Device.js——检测设备平台、操作系统的Javascript 库
  9. java.io.CharConversionException: Not an ISO 8859-1 character:
  10. DJANGO用户名认证一例