华为招聘机试整理10:实现字符串中子字符串的替换
2017-07-16 10:48
267 查看
华为招聘机试整理10:实现字符串中子字符串的替换
题目:子字符串的替换编写一个字符串替换函数。如函数名为 StrReplace(char* strSrc, char* strFind, char* strReplace)。strSrc为原字符串,strFind是待替换的字符串。strReplace为替换字符串。
举个直观的样例吧。如:“ABCDEFGHIJKLMNOPQRSTUVWXYZ”这个字符串,把当中的“RST”替换为“ggg”这个字符串。结果就变成了:
ABCDEFGHIJKLMNOPQgggUVWXYZ
*题目分析:
这道题主要是考察怎样在一个非常长的字符串中去寻找目标子字符串,而且进行替换,这个用字符数组或者指针都非常好完毕。
算法思路:
①对长字符串进行循环。找出目标子字符串的首字符位置
②对目标子字符长度进行循环,找出目标子字符的尾字符。
③用替换字符一一替换。
==========================================================================
參考代码:
//子字符串的替换.cpp //2014.7.11 hepanhui #include <iostream> #include <string> const int maxn = 100; using namespace std; void StrReplace(char* strSrc, char* strFind,char* strReplace) { int len1 = strlen(strSrc); int len2 = strlen(strFind); for(int i = 0; i < len1; i++) { if(strSrc[i] == strFind[0]) { for(int j = 0; j < len2; j++) { if(strSrc[i + j] == strFind[j]) { strSrc[i + j] = strReplace[j]; } } } } } int main() { char strSrc[maxn]; char strFind[maxn]; char strReplace[maxn]; cin >> strSrc >> strFind >> strReplace; StrReplace(strSrc, strFind,strReplace); cout << strSrc << endl; return 0; }
[/code]
相关文章推荐
- 华为招聘机试整理10:实现字符串中子字符串的替换
- 华为招聘机试整理11:实现字符串间隔输出
- 华为招聘机试整理11:实现字符串间隔输出
- 华为招聘机试整理9:输入一个字符串,用指针求出字符串的长度
- 华为招聘机试整理9:输入一个字符串,用指针求出字符串的长度
- 华为机试——字符串中子字符串替换
- 华为招聘机试整理12:合并字符串
- (华为机试)双向链表实现字符串条件表达式的求值
- 算法思维——字符串压缩程序(华为2014校园招聘的机试题目)
- 华为机试---字符串替换
- 华为招聘机试整理1:删除子串
- 华为招聘机试整理15:约瑟夫环
- 2014华为机试-字符串替换
- 华为招聘机试整理5:简单四则运算
- 华为招聘机试整理6:选秀节目打分
- 华为招聘机试整理8:操作系统任务调度问题
- 2015华为招聘机试样题(java实现)
- 实现字符串中子字符串的替换(待替换字符串和替换字符串的长度可以不相等)
- (华为机试)双向链表实现字符串条件表达式的求值
- 数据结构与算法分析笔记与总结(java实现)--字符串10:空格替换练习题