C++编程,查找字符串子串并替换。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++编程,查找字符串子串并替换。相关的知识,希望对你有一定的参考价值。
#include <iostream>
#include <string>
using namespace std;
int main()
string a;/////指定串,可根据要求替换
string b;////要查找的串,可根据要求替换
string c;
while(cin>>a>>b>>c)
int pos;
pos = a.find(b);////查找指定的串
while (pos != -1)
a.replace(pos,b.length(),c);////用新的串替换掉指定的串
pos = a.find(b);//////继续查找指定的串,直到所有的都找到为止
cout<<a<<endl;
return 0;
这个代码超时了,请问怎么控制?
程序运行超时
#include <iostream>
#include <string>
using namespace std;
int main()
string a;/////指定串,可根据要求替换
string b;////要查找的串,可根据要求替换
string c;
cin>>a>>b>>c;
int pos;
pos = a.find(b);////查找指定的串
while (pos != -1)
a.replace(pos,b.length(),c);////用新的串替换掉指定的串
pos = a.find(b);//////继续查找指定的串,直到所有的都找到为止
cout<<a<<endl;
return 0;
测试将test换成TEST成功!
如图所示!
追问我这个题目要处理到文件尾,就是多组测试,while循环必须要的。。
参考技术A 1.一般不要使用cin作为循环退出的判断依据,除非你非常明白它,并且确认必须要使用它。2.一般不要使用-1作为搜索不到字符串的判断依据,一般使用std::string::npos
3.一般不要使用int来接收搜索位置,一般使用size_type
4.尽量不要直接using namespace,那样的话,命名空间存在的意义也就不大了。 参考技术B 数据太大会超时的 参考技术C while(cin>>a>>b>>c) 这句,你是要一直循环输入啊? 没有退出的?追问
是的
追答退出肯定是要的吧,你说读文件也是要判断是否到了文件的末尾,否则你这个程序不是要一直跑?
我刚刚试了一下你的程序没有什么运行超时啊。 你是不是其他程序调用这个程序》?
运行超时什么现象呢?显示什么呢?是不能输入了嘛?还是崩溃了?追问
是你问我还是我问你呢。。=,=。程序有运行时间那,不然提交就会超时,所以要优化一下!
追答中午休息后,参考并改进,vs2010通过测试
看看是不是您想要的效果:
// tesWeb.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <string>
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
string a;/////指定串,可根据要求替换
string b;////要查找的串,可根据要求替换
string c;
int pos;
while ( cin >> a>>b>>c)
pos = a.find(b);
while(pos != -1)
a.replace(pos++,b.length(),c);////用新的串替换掉指定的串
pos = a.find(b);
cout<< a.c_str() <<endl;
return 0;
谢谢
编程100%22-08 字符串子序列
题目描述
时间限制: 3000MS
内存限制: 589824KB题目描述:
输入n个字符串,S1,S2,S3,...,Sn。小明想在其中选出K个字符串,把它们按照原始的顺序排好。严格地,小明选出了K个下标1≤i1<i2<i3<,...,<ik≤n,从而得到了新的K个字符串的序列Si1,Si2,Si3,...,Sik。
定义两个字符串S,T的最长公共前缀是S和T最长的一段相同的前缀。如字符串“abba”和“abab”的最长公共前缀是”ab”;字符串“ababa”和“ababb”的最长公共前缀是”abab”;字符串”aba”和“bab”的最长公共前缀是空串。
定义一个字符串序列的价值为所有相邻串公共前缀长度之和,小明想选出价值最高的序列。
输入描述
第一行输入两个数n,k。(2≤n≤50,2≤k≤n)
接下来有n行,每行一个字符串。每个字符串长度不超过20,字符串中只有小写字母。
输出描述
输出一个数,最大价值。
示例
样例输入
5 3 abbc bcc abba ab abbb样例输出
6
思路
1、 从小到大排序;
2、二分法查找插入;
实现:
……
通过率100%
----------------------------------------------------------------------------------------
每周一道题,作为新时代的码农,无论是什么时候都不应该放弃编程
以上是关于C++编程,查找字符串子串并替换。的主要内容,如果未能解决你的问题,请参考以下文章