2017.11.12第三章字符串向量和数组

author author     2022-09-30     330

关键词:

3.1 命名空间的using声明

std::cin 表示从标准输入中读取内容。此处使用作用域操作符(::)表示:编译器从操作符左侧名字所示的作用域中寻找右侧那个名字。

而使用using声明是最安全的一种方法。

using 声明具有如下格式:

using namespace::name;

例如:

#include <iostream>

using std::cin;

int main()

{

  int i;

  cin>>i;                    //cin和std::cin含义相同

  cout<<i;      //错误,没有对应的using声明

  std::cout<<i;

return 0;

}

3.2 标准库类型 string

标准库类型string 表示可变长的字符序列,使用string 类型必须包含string头文件。作为标准库的一部分,string定义在命名空间std中。

#include <string>

using std::string;

3.2.1 定义和初始化string对象

string  s1;                 //s1是一个空字符串

string s2(s1);            //s2是s1的副本

string s2=s1;             //等价于s2(s1)

string s3("value");       //s3是字面值“value”的副本,除了字面值最后面的那个空字符外

string s3="value";      //等价于s3(“value”)

string s4(n,‘c‘);        //把s4初始化为由连续n个字符c组成的串

使用=是拷贝初始化,其他是直接初始化。

3.2.2 string 对象上的操作

os<<s             //将s写到输出流os当中,返回os

is>>s               // 从is中读取字符串赋给s,字符串以空白分隔,返回is

getline(is,s)        //从is中读取一行赋给s,返回is

s.empty()            //s为空返回true,否则返回false

s.size()            //返回s中字符个数

s[n]                   //返回s中第n个字符的引用,位置n从0计起

s1+s2             //返回s1和s2连接后的结果

s1=s2                 //用s2 的副本代替s1 中原来的字符

s1==s2         //string 对象的相等性判断对字母 的大小写敏感

s1!=s2

<,<=,>,>=

 

读写string

 

#include <iostream>

#include <string>

using std::cin;

using std::cout;

using std::endl;

using std::string;

int main()

{

string s;

cin>>s;          //执行读取操作时,string对象会自动忽略开头的空白(即空格符、换行符、制表符),从第一个真正的字符开始读,直到遇见下一处空白

cout<<s<<endl;   //如果输入的是 “     Hello            World!”,输出是Hello

return 0;

}

如果想保留空白符,则需要用getline()。getline只要遇到换行符就结束读取操作并返回结果。

#include <iostream>
#include <string>
using std::cin;
using std::cout;
using std::endl;
using std::string;
int main()
{
 string word;
 while (getline(cin,word))           //从输入中读取字符,放入word中,并返回cin
 {
  cout << word << endl;

 }
 return 0;
}

 

 

 

 

 

第一二三章绪论复合类型字符串向量和数组

constexpr和常量表达式:指值不会改变并且在编译过程就能得到计算结果得表达式 1.auto一般会忽略                   decltype类型指示符:目的是从表达式的类型... 查看详情

c++字符串向量和数组的一些术语

C++字符串、向量和数组的一些术语前言一、术语总结前言string和vector是两种最重要的标准库类型。string对象是一个可变长的字符序列,vector对象是一组同类型对象的容器。迭代器允许对容器中的对象进行间接访问,... 查看详情

c++字符串向量和数组的一些术语

C++字符串、向量和数组的一些术语前言一、术语总结前言string和vector是两种最重要的标准库类型。string对象是一个可变长的字符序列,vector对象是一组同类型对象的容器。迭代器允许对容器中的对象进行间接访问,... 查看详情

c++字符串向量和数组的一些术语

C++字符串、向量和数组的一些术语前言一、术语总结前言string和vector是两种最重要的标准库类型。string对象是一个可变长的字符序列,vector对象是一组同类型对象的容器。迭代器允许对容器中的对象进行间接访问,... 查看详情

一次性创建和初始化向量数组

...【发布时间】:2010-06-1718:46:10【问题描述】:要创建一个字符串数组,这是可行的:std::stringarray[]="first","second",:"last";如果我尝试对向量做同样的事情,它就行不通:std::vector<int>array[]=1,2,3,4,5:9;我 查看详情

将文件存储在数组和向量中

...:37【问题描述】:我一直在试图弄清楚如何将txt文件中的字符串和双精度数存储在数组和向量中,但我就是想不通。我做了很多研究,但没有找到可以向我解释的东西。基本上,我的任务是从包含用户名密码和这种格式的货币或... 查看详情

练笔-字符串,向量和数组6

1迭代器的使用迭代器是一种访问容器元素的通用机制,与指针类型相似,迭代器也提供了对对象的间接访问。使用迭代器可以访问某个元素,迭代器也能从一个元素移动到另一个元素。其中迭代器有两种类型,一种是cbegin,cend... 查看详情

第3章字符串向量和数组(代码片段)

1-getline()使用usingstd::getline;intmain()for(stringstr;getline(cin,str);cout<<str<<endl);return0;2-理解for循环开头的执行顺序1->2->3intmain()for(stringstr/*1*/;cin>>str/*2*/;cout<< 查看详情

Crypto.js 用字节数组中的密钥和 iv(向量)解密

...:2016-02-1302:54:56【问题描述】:我必须解密一些AES加密的字符串。示例加密字符串:129212143036071008133136215105140171136216244116我有一个密钥,以及一个以字节数组格式提供给我的向量(iv):键: 查看详情

2017.11.12

...意的字符。输出描述:对于每组输入,请输出一行反序后的字符串。具体可见样例。示例1输入UpincvYjWJpwcXOA输出nipUjYvcwpJWAOXc #include<iostream>#include<string>#include 查看详情

2017.11.12

...化进入编辑模式o:新起一行进入编辑模式s:删除光标所在字符进入编辑模式 2.尾行模式操作:w//对编辑后的文档进行保存:q//退出vi编辑器:wq//保存 查看详情

c++核心-字符串向量和数组及指针详解

关于STL的内容后面再详细介绍,string和vector都是标准模板库的内容。数组是C的复合类型(可能只有我这么叫),一组数据,空间连续,所以由开始也有结束,从0开始,到n-1结束。注意别越界,因为是从0开始的。string和vector内部... 查看详情

剑指offer(java版)第三十五题:给一个数组,返回它的最大连续子序列的和

...又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:6,-3,-2,7,-15,1,2,2,连续子向量的... 查看详情

字符串向量,每个字符串的长度和 c++ 中的 strlen

】字符串向量,每个字符串的长度和c++中的strlen【英文标题】:vectorofstring,eachstringslengthandstrleninc++【发布时间】:2013-11-2111:56:34【问题描述】:我有一个字符串向量。我需要找到每个字符串的长度。然后我假设当我将每个字符... 查看详情

第三部分数据结构[专业课考试3]

...伪代码均可)总分:60分一、栈(Stack)、队列(Queue)和向量(Vector)内容:单链表,双向链表,环形链表,带哨兵节点的链表;栈的基本概念和性质,栈ADT及其顺序,链接实现;栈的应用;栈与递归;队列的基本概念和性质,队列ADT及其顺序,... 查看详情

为啥字符串不是向量的(子类)?

】为啥字符串不是向量的(子类)?【英文标题】:Whyisstringnota(subclassof)vector?为什么字符串不是向量的(子类)?【发布时间】:2015-07-1415:43:21【问题描述】:C字符串是字符数组。向量是C++中的新数组。那么为什么不是字符串... 查看详情

如何将向量转换为数组

】如何将向量转换为数组【英文标题】:Howtoconvertvectortoarray【发布时间】:2010-05-2717:14:40【问题描述】:如何将std::vector&lt;double&gt;转换为doublearray[]?【问题讨论】:有点想问为什么?您可以将向量作为数组访问。数组有... 查看详情

字符串,向量,数组(代码片段)

字符串,向量,数组本章内容:访问库中名字的简单方法两种重要的标准库类型:string和vectorstring表示可变长的字符序列vector存放的是某种给定类型对象的可变长序列还将介绍内置数组类型3.1命名空间的using声明格式:usingnamespace::namenam... 查看详情