文章

14

粉丝

58

获赞

5

访问

9.2k

头像
删除字符串2 题解:transform()函数+erase()函数(有坑)
P1027 贵州大学2019机试
发布于2024年3月15日 15:39
阅读数 548

#include <bits/stdc++.h>
using namespace std;

int main(){
	string str, str1;
	cin >> str;
	str1 = str;
	int pos = 0;
	/*tolower()函数是把字符串都转化为小写字母;toupper()函数是把字符串都转化为大写字母
	transform(first,last,result,op); 
	first是容器的首迭代器,last为容器的末迭代器,result为存放结果的容器,op为要进行操作的一元函数对象或sturct、class。*/
	transform(str1.begin(), str1.end(), str1.begin(), ::tolower);

	while ( ( pos = str1.find("gzu") ) != -1 ){
		str.erase(pos, 3);
		str1.erase(pos, 3);   //这里str1必须删除,因为erase返回的是删除后的字符串,不删除pos位置对不上,运行报错!!
	}
	cout << str << endl; //只能输出str,若输出str1则字母全小写不符合题意
    return 0;
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发