标准库string类型

string类型支持长度可变的字符串,C++标准库将负责管理与存储字符相关的内存,以及提供各种有用的操作。标准库string类型的目的就是满足对字符串的一般应用。

本文地址:http://www.cnblogs.com/archimedes/p/cpp-string.html,转载请注明源地址。

引入头文件#include<string>

1、string对象的定义和初始化

string标准库支持几个构造函数,构造函数是一个特殊成员函数

一下是几种初试化string对象的方式


string s1;   //默认构造函数,s1为空串
string s2(s1); //将s2初始化为s1的副本
string s3("value"); //将s3初始化为一个字符串字面值副本
string s4(n,‘c‘); //将s4初始化字符‘c‘的n个副本

2、string对象的读写

使用标准输入输出操作符来读写string对象:


#include<iostream>
#include<string>
using namespace std;
int main()
{
string s;
cin>>s;
cout<<s<<endl;
return 0;
}

string类型的输入输出操作符:

  • 读取并忽略开头所有的空白字符(如空格、换行符、制表符等)

  • 读取字符直至再次遇到空白字符,读取终止

我们可以把多个读操作或多个写操作放在一起:


string s1,s2;
cin>>s1>>s2;
cout<<s1<<s2<<endl;

(1)读入未知数目的的string对象

string的输入输出操作符也会返回所读的数据流,可以把输入操作作为判断条件:


int main()
{
string word;
while(cin>>word)
cout<<word<<endl;
return 0;
}

(2)、使用getline读取整行文本

string
IO操作:getline,这个函数接受两个参数:一个输入流对象和一个string对象。getline函数从输入流的下一行读取,并保存读取内容到string中,但不包括换行符。getline并不忽略换行符,遇到换行符,即便它是输入的第一个字符,getline也将停止读入并返回,这时string参数将被置为空string


int main()
{
string line;
while(getline(cin,line))
cout<<line<<endl;
return 0;
}

3、string对象的操作

(1)string的size和empty操作

了解string对象是否为空是有用的:


string st("test");
if(st.size()==0)
//or
if(st.empty())

(2)string::size_type类型

size()成员函数返回的是string::size_type类型的值,一种unsigned型,事实表明size_type存储的string长度是int所能存储的两倍

4、string对象的赋值

可以把一个string对象赋值给另一个string对象:


string s1,s2="test";
s1=s2;

先将s1占用的相关内存释放,分配给s1足够存放s2副本的内存空间,最后把s2中所有字符复制到新分配的内存空间

5、两个string对象相加

两个或多个string对象可以通过使用+或者+=连接起来


string s1("hello, ");
string s2("word\n");
string s3=s1+s2;
//or
s1+=s2;

6、和字符串字面值的连接


string s1("hello");
string s2("world");
string s3=s1+", "+s2+"\n";

7、从string对象获取字符

string类型通过下标操作符([])来访问string对象中的单个字符

标准库string类型,布布扣,bubuko.com

时间: 2024-08-08 22:44:40

标准库string类型的相关文章

标准库string类型用法(一)

标准库string类型 1. string对象的定义与初始化 string s1;                             默认构造函数,s1为空串 string s2(s1);                      将s2初始化为s1的一个副本 string s3("nwpu");            将s3初始化为一个字符串字面值副本 string s4(n, 'b');                 将s4初始化为字符‘b’的n个副本 2. string对

【C++ Primer每日刷】之三 标准库 string 类型

标准库 string 类型 string 类型支持长度可变的字符串,C++ 标准库将负责管理与存储字符相关的内存,以及提供各种有用的操作.标准库string 类型的目的就是满足对字符串的一般应用. 与其他的标准库类型一样,用户程序要使用 string 类型对象,必须包含相关头文件.如果提供了合适的 using 声明,那么编写出来的程序将会变得简短些: #include <string> using std::string; 1.1 string 对象的定义和初始化 string 标准库支持几个

C++标准库vector类型的使用和操作总结

vector是一种类型对象的集合,它是一种顺序容器,容器中的所有对象必须都是同一种类型.vector的对象是可以动态生长的,这说明它在初始化时可以不用指定大小,而是再使用时根据元素所需的空间动态增长.C++中还有一种常见的类型string,它和vector有很多相似之处,具体可以看<C++标准库string类型的使用和操作总结>这篇博文.下面简单介绍一下vector容器的使用和操作. 一.声明和初始化 使用vector之前必须在程序前的库包含中包含相应的头文件,如下: #include<

把《c++ primer》读薄(3-3 标准库bitset类型)

督促读书,总结精华,提炼笔记,抛砖引玉,有不合适的地方,欢迎留言指正. //开头 #include <bitset> using std::bitset; 问题1.标准库bitset类型(模版) 需要处理二进制位的时候,可以使用c++标准库提供的bitset类型,它也是类模版,类似vectro容器,唯一不同的是,bitset类型需要说明长度,使用常量表达式给出的整型字面值或者已经初始化的cosnt对象. bitset<32> bit;//从0到31位算的,bit的32位每位初始化为

C 标准库 - &lt;string.h&gt;

C 标准库 - <string.h> 简介 string .h 头文件定义了一个变量类型.一个宏和各种操作字符数组的函数. 库变量 下面是头文件 string.h 中定义的变量类型: 序号 变量 & 描述 1 size_t 这是无符号整数类型,它是 sizeof 关键字的结果. 库宏 下面是头文件 string.h 中定义的宏: 序号 宏 & 描述 1 NULL这个宏是一个空指针常量的值. 库函数 下面是头文件 string.h 中定义的函数: 序号 函数 & 描述 1

一、Python的标准库String

一.Python的标准库String 1.查看武器 a. help(type()) name = "jane"print(help(type(name))) b. capitalize() name = "jane" print(name.capitalize()) 效果:Jane c. center() name = "jane" print(name.center(50, '-')) 效果:-----------------------jan

实现C++标准库string类的简单版本

后续待更新. 1 #ifndef STRING_H 2 #define STRING_H 3 4 #include <cassert> 5 #include <utility> 6 #include <iostream> 7 8 namespace jz 9 { 10 11 /************************************************************************/ 12 /* 重新实现C风格字符串处理函数 */

C++标准库string

一:标准库类型string ①使用string要包含头文件 #inludde<string> using std:string; ②sting 对象的初始化 string s1; //初始化一个空串 string s2(s1); //吧s1赋值给s2(也就是拷贝初始化) string s2 = s1; string s3("value");//(直接初始化) string s3 = "value" string s4(n , 'c') //把s4初始化为

C++ 标准库string字符串的截取

标准库的string有一个substr函数用来截取子字符串.一般使用时传入两个参数,第一个是开始的坐标(第一个字符是0),第二个是截取的长度. #include <iostream> #include <string> using namespace std; int main(int argc, char* argv[]) { string name("rockderia"); string firstname(name.substr(0,4)); cout