C++入门:string常见操作(上),string字符串的创建,输入

1.创建字符串

示例:

  1. string s1 表⽰创建空字符串,相当于创建整型 int a ,但未给 a ⼀个初始值。
  2. string s2 = "hello world" 表示创建⼀个字符串s2,它的内容是" hello world ",要注意 s2 中的字符串不再以 \0 作为结束标志了。(C 语⾔中的字符串是以 \0 作为结束标志的)

s2字符串的示意图

Tips:
上面这个图,仅仅是字符串s2的示意图,实际上 string 类型的字符串比这个要复杂的多,更多的知识得学习C++的类和对象的知识才能明白。
除了以上创建字符串的写法外,C++中还有一些其他的创建字符串的方法。

C++中的string创建夫人字符串和char类型的数组所表示的字符串还有一个区别:string类型的字符串对象可以直接赋值。

示例:

2.string字符串的输入

2.1cin的方式

可以直接使用cin给string类型的字符串中输入一个字符串的数据

#include <iostream>
#include <string>

using namespace std;

int mian()
{
	sring s;
	//输入
	cin >> s;
	//输出
	cout << s << endl;
	 
	return 0;
}

输入不带空格的字符串:

输入带空格的字符串:

这里我们可以发现,其实cin的方式给string类型的字符串中输入数据的时候,可以输入不带空格的字符串。但是如果带有空格,遇到空格也就读取结束了,没有办法正常读取。那么怎么办呢?解决办法就是使用getling。

2.2getline的方式

getline 是C++标准库中的⼀个函数,用于从输入流中读取一行文2本,并将其存储为字符串。
getline函数里有两种不同的形式,分别对应着字符串的结束方式。

istream& getline (istream& is, string& str);
istream& getline (istream& is, string& str, char delim);

Tips:
  1. istream 是输入流类型, cin 是 istream 类型的标准输入流对象。
  2. ostream 是输出流类型, cout 是 ostream 类型的标准输出流对象。
  3. getline 函数是输⼊流中读取一行文本信息,所有如果是在标准输⼊流(键盘)中读取数据,就可以传 cin 给第⼀个参数。
  • 第一种getline函数以换行符('\n')作为字符串的结束标志,他的一般格式是:

getline(cin, string str)
//cin --表示从输入流中读取信息
//str  是存放读取到的信息的字符串

这种形式的getline函数从输入流(例如cin)中读取文本,直到遇到换行符('\n')为止,然后将读取到的文本(不包括换行符)存储到string类型的变量str中。

//代码1
#include <iostream>
#include <string>

using namespace std;

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

运行结果如下:

  • 第二种getline函数允许用户自定义结束标志,它的一般格式是:
getline(cin, string str, char delim)
//cin -- 表示从输入流中读取信息
//str 是存放读取到的信息的字符串
//delim 是自定义的结束标志 

这种形式的getline函数从输入流中读取文本,直到遇到用户指定的结束标志字符(delim)为止,然后将读取到的文本(不包括结束标志字符)存储到string类型的变量str中。

//代码2
#include <iostream>
#include <string>

using namespace std;

int main()
{
	string name;
	getline (cin, name, 'q');
	cout << name << endl;
	
	return 0;
}
运行结果如下:

Tips:
在使用C++中的string字符串时,想要输入的字符串中包含空格,那么getline函数就是必须的。
在竞赛中为了方便处理字符串,通常会使用string类型的字符串,所以在字符串输入的时候getline就很常见。
好了,以上就是今天的内容,后续内容持续更新中~
PS:麻烦各位大佬多多指教哈~

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值