#C03L09P01. C03.L09.字符串函数(二).getline、erase、insert()函数.函数介绍

C03.L09.字符串函数(二).getline、erase、insert()函数.函数介绍

1 getline

函数形式

  1. getline ( cin,字符串类型:变量名);//默认以换行符结束
#include<bits/stdc++.h>
using namespace std;
int main()
{
	string str;
	getline(cin,str);
	cout<<str;

	return 0;
}

输入: hello! 输出: hello!

  1. getline (cin, 字符串类型:变量名, ‘指定的结束符’); //指定换行结束符
#include<bits/stdc++.h>
using namespace std;
int main()
{
	string str;
	getline(cin,str,'!');
	cout<<str;

	return 0;
}

输入: hello! 输出: hello

注意事项:

1。 如果在使用getline()之前有使用scanf()或cin读取数据,那么需要用getline()将前面的换行符读取,再使用getline()。

  1. getline()这个函数是可以读取空格,遇到换行符或者EOF结束,但是不读取换行符的。

  2. 当以指定的结束符(例:’!’)作为结束符时,’!’以及’!’后面的字符就不再读取。

  3. 经常需要将getline()与while使用

在这个例子中,逗号运算符的作用就是将最后一个式子作为判定的条件,即while判断的是str!=”#”这个条件,只有当输入到str的为#键时,循环才会结束。

#include<bits/stdc++.h>
using namespace std;
int main()
{
	string str;
	
	while( getline(cin,str), str!="#")
	{
		cout<<str<<endl;
	}
	
	return 0;
}

输入:

I love China.
Hello!
What's your name?
#

输出:

I love China.
Hello!
What's your name?

2 erase

erase(开始位置i, 删除长度len); // 删除从i开始的n个字符(包括位置i)

#include<bits/stdc++.h>
using namespace std;
int main()
{
	string str;
	
	str = "This is an example phrase."

	str.erase(10,8);
		
	cout<<str;
	
	return 0;
}

输出: This is an phrase.

3 insert

insert(插入位置i,插入字符串s); //在字符串的第i个位置插入s,原字符串的第i位置开始往后挪腾出位置给s。

#include<bits/stdc++.h>
using namespace std;
int main()
{
	string str;
	
	str = "123456"

	str.insert(2,"+");
		
	cout<<str;
	
	return 0;
}

输出 : 12+3456