#C03L09P01. C03.L09.字符串函数(二).getline、erase、insert()函数.函数介绍
C03.L09.字符串函数(二).getline、erase、insert()函数.函数介绍
1 getline
函数形式
- getline ( cin,字符串类型:变量名);//默认以换行符结束
#include<bits/stdc++.h>
using namespace std;
int main()
{
string str;
getline(cin,str);
cout<<str;
return 0;
}
输入: hello! 输出: hello!
- 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()。
-
getline()这个函数是可以读取空格,遇到换行符或者EOF结束,但是不读取换行符的。
-
当以指定的结束符(例:’!’)作为结束符时,’!’以及’!’后面的字符就不再读取。
-
经常需要将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
相关
在以下作业中: