将字符串插入另一个字符串的指定位置
来源:互联网 发布:图解网络硬件 百度云 编辑:程序博客网 时间:2024/05/17 06:36
题目:编写一个函数,将一个字符串插入到另一个字符串的某个位置后面(例如:将”abc”插入到”abcdef”的第三个字符位置后面,结果为”abcabcdef”)。编写程序时,请在必要的地方加以注释(注:不能用该程序语言的内置函数或过程)。
思路:
- 将str1字符串的指定位置后的内容复制到另一个字符串中,空间换时间降低时间复杂度;
- 再将str2字符串(待插入字符串)复制到str1的指定位置;
- 将str1和tmp拼接起来(这里用到了字符串拼接函数)。
代码实现:
#include <iostream>#define Max_num 1000int myStrlen(const char *str){ int len = 0; while (*str++) len++; return len;}void myStrcat(char *str1, char *str2) //拼接函数{ int len1 = strlen(str1); int len2 = strlen(str2); for (int i = 0;i < len2;i++) { str1[len1 + i] = str2[i]; } str1[len1 + len2] = '\0';}void myLink(char *str1, char *str2,int pos){ int len1 = myStrlen(str1); int len2 = myStrlen(str2); char *tmp= (char *)malloc(sizeof(char)); int cnt = 0; for (int i = pos; i <= len1;i++) { //*tmp++ = str1[i]; //指针要初始化或者有相应的值,这样是错误的 tmp[cnt++] = str1[i]; } int j; for ( j = 0;j < len2;j++) { str1[ pos + j] = *str2++; } str1[pos + j] = '\0'; myStrcat(str1, tmp);}int main(){ char str1[Max_num], str2[Max_num]; int n; while (cin>>str1>>str2) { cin >> n; myLink(str1, str2, n); cout << str1 <<endl; } return 0;}
阅读全文
0 0
- 将字符串插入到另一个字符串的指定位置
- 将字符串插入另一个字符串的指定位置
- 第十五周 OJ 将一个字符串插入另一个字符串的指定位置
- 第十五周 OJ总结<7>将字符串插入到另一个字符串的指定位置(串)
- 第十五周OJ(6)将字符串插入到另一个字符串的指定位置(串)
- 第十五周-将字符串插入到另一个字符串的指定位置(串)
- 第十五周 将字符串插入到另一个字符串指定的位置
- 第十五周-OJ-G将字符串插入到另一个字符串的指定位置(串)
- 将字符串插入到另一个字符串的指定位置(串)
- 将一个字符串插入到另一个字符串的某个位置
- 将一个字符串插入到另一个字符串的某个位置
- PHP:将一个字符创插入到另一个字符串的指定位置
- 第十五周oj训练——将字符串插入到另一个字符串的指定位置(串)(2274)
- 第15周OJ实践7 将字符串插入到另一个字符串的指定位置(串)
- 第15周 oj Problem G: 将字符串插入到另一个字符串的指定位置(串)
- 将字符串插入到指定位置
- 字符串指定位置插入
- 把一个字符串插到另一个字符串的指定位置
- python 多线程
- [Kafka]
- JAVA | 32
- 学习真的很难吗?
- 一文读懂Hinton最新Capsules论文
- 将字符串插入另一个字符串的指定位置
- 基于Socket编程,模拟TCP部分协议字段编程
- linux下GNU、G++编辑器的安装及基本使用
- 练习2
- [BZOJ2599][IOI2011]Race(点分治)
- 717. 1-bit and 2-bit Characters
- Java基础知识
- once his body was hidden in the secret alcove it
- HDU2021递归