介绍

c++中字符串string对象属于一个类,内置了很多实用的成员函数,操作简单,方便更直观。

命名空间为std,所属头文件<string> 注意:不是<string.h>。

跟进代码会发现string其实只是basic_string模板类的一个typedef。

赋值

	//方法1
string str1 = "woniu201";
//方法2
char* p = "woniu201";
string str2 = p;

遍历

	//方法1 使用下标
for (int i=0; i<str1.length(); i++)
{
printf("%c", str1[i]);
}
//方法2 使用迭代器
string::iterator it;
for (it=str1.begin(); it!=str1.end(); it++)
{
printf("%c", *it);
}

查找

	string str5 = "woniu201";
int pos1 = str5.find("n", 0); //从位置0开始查找字符n在字符串str5中的位置
int pos2 = str5.find("niu", 0); //从位置0开始查找字符串niu在字符串str5中的位置
int pos3 = str5.find("niu", 0, 2);//从位置0开始查找字符串niu前两个字符组成的字符串在str5中的位置

截取

	string str3 = "woniu201";
string str4 = str3.substr(0,5);//返回从下标0开始的5个字符组成的字符串

其他

    //返回C串char* c_str()
char buf[1024] = {0};
string str5 = "i love chain";
strcpy(buf, str5.c_str()); //字符串连接
string str6 = "woniu201";
string str7 = "hailuo201";
string str8 = str6 + str7; //判断是否相等
bool bRet1 = (str6 == str7); //相等为true,否则为false //判断字符串是否为空
bool bRet2 = str6.empty(); //字符串插入
string str9 = str6.insert(0, str7); //字符串str6的0位置插入字符串str7 //字符串交换
str6.swap(str7); //判断是否包含
string::size_type idx = str6.find("woniu");
if(idx == string::npos)
{
cout << "not found" << endl;
}

欢迎加群交流:C/C++开发交流

【C++札记】标准模板库string的更多相关文章

  1. C++——string类和标准模板库

    一.string类 1.构造函数 string实际上是basic_string<char>的一个typedef,同时省略了与内存管理相关的参数.size_type是一个依赖于实现的整型,是 ...

  2. C++标准模板库Stand Template Library(STL)简介与STL string类

    参考<21天学通C++>第15和16章节,在对宏和模板学习之后,开启对C++实现的标准模板类STL进行简介,同时介绍简单的string类.虽然前面对于vector.deque.list等进 ...

  3. (18)C++ string和标准模板库

    一.stringl类 1.string构造函数 string a1("abc");//初始化字符串 cout<<a1<<endl;//abc , '#'); ...

  4. C++ primer plus读书笔记——第16章 string类和标准模板库

    第16章 string类和标准模板库 1. string容易被忽略的构造函数: string(size_type n, char c)长度为n,每个字母都为c string(const string ...

  5. STL标准模板库(简介)

    标准模板库(STL,Standard Template Library)是C++标准库的重要组成部分,包含了诸多在计算机科学领域里所常见的基本数据结构和基本算法,为广大C++程序员提供了一个可扩展的应 ...

  6. 【转】C++标准库和标准模板库

    C++强大的功能来源于其丰富的类库及库函数资源.C++标准库的内容总共在50个标准头文件中定义.在C++开发中,要尽可能地利用标准库完成.这样做的直接好处包括:(1)成本:已经作为标准提供,何苦再花费 ...

  7. 【c++】标准模板库STL入门简介与常见用法

    一.STL简介 1.什么是STL STL(Standard Template Library)标准模板库,主要由容器.迭代器.算法.函数对象.内存分配器和适配器六大部分组成.STL已是标准C++的一部 ...

  8. STL 简介,标准模板库

    这篇文章是关于C++语言的一个新的扩展--标准模板库的(Standard Template Library),也叫STL.  当我第一次打算写一篇关于STL的文章的时候,我不得不承认我当时低估了这个话 ...

  9. 标准模板库(STL)学习探究之stack

    标准模板库(STL)学习探究之stack queue priority_queue list map/multimap dequeue string

随机推荐

  1. codeforces#1257 F. Make Them Similar ( 经典中间相遇问题 )

    题目链接: http://codeforces.com/contest/1257/problem/F 题意: 给出$n$个30位整数 找到一个数,让它与这$n$个数分别异或,得到的$n$个数二进制1的 ...

  2. Tkinter 之Text文本框标签

    一.参数说明 语法 作用 t=tk.Text()t.insert(END,'插入的文本信息') INSERT:光标的插入点CURRENT:鼠标的当前位置所对应的字符位置END:这个Textbuffer ...

  3. 迭代器Iterator、for循环遍历、泛型

    java.util.Collection接口 是集合的最顶层的接口,定义了集合共性的方法 接口无法直接创建对象,使用多态的方式创建对象 Collection<集合中的数据类型(泛型)> c ...

  4. 上下文对象-请求对象-响应对象(ServletContext - response - request)

    目录 上下文对象-请求对象-响应对象 ServletContext response request 上下文对象-请求对象-响应对象 ServletContext 什么是ServletContext ...

  5. legend3---20、加东西之前要保证没有,删东西之前要保证有,无论前端后端

    legend3---20.加东西之前要保证没有,删东西之前要保证有,无论前端后端 一.总结 一句话总结: 加东西之前要保证没有,删东西之前要保证有,无论前端后端 这是很好的编程习惯,可以避免很多错误, ...

  6. kill 一个名字 程序的所有进程

    ps aux | grep chrome | awk '{print $2}' | xargs kill -9

  7. python: 关于解决'\u'开头的字符串转中文的方法

    爬虫爬到的内容是这样的: 如果直接打印出来是这样的: python3的解决办法:字符串.encode('utf-8').decode('unicode_escape') python2:字符串.dec ...

  8. Googletest - Google Testing and Mocking Framework

    Googletest - Google Testing and Mocking Framework https://github.com/google/googletest

  9. LC 989. Add to Array-Form of Integer

    For a non-negative integer X, the array-form of X is an array of its digits in left to right order.  ...

  10. web前端之es6对象的扩展

    1.属性的简洁表示法 2.属性名表达式 表达式作为对象的属性名 3.方法的 name 属性 例如:函数的name 属性,返回函数名. 4.Object.is() ES 比较两个值是否相等,只有两个运算 ...