将字符串插入另一个字符串的指定位置
2017-11-29 21:12
495 查看
题目:编写一个函数,将一个字符串插入到另一个字符串的某个位置后面(例如:将”abc”插入到”abcdef”的第三个字符位置后面,结果为”abcabcdef”)。编写程序时,请在必要的地方加以注释(注:不能用该程序语言的内置函数或过程)。
思路:
将str1字符串的指定位置后的内容复制到另一个字符串中,空间换时间降低时间复杂度;
再将str2字符串(待插入字符串)复制到str1的指定位置;
将str1和tmp拼接起来(这里用到了字符串拼接函数)。
代码实现:
思路:
将str1字符串的指定位置后的内容复制到另一个字符串中,空间换时间降低时间复杂度;
再将str2字符串(待插入字符串)复制到str1的指定位置;
将str1和tmp拼接起来(这里用到了字符串拼接函数)。
代码实现:
#include <iostream> #define Max_num 1000 int 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; }
相关文章推荐
- 将字符串插入到另一个字符串的指定位置(串)
- 第十五周 OJ总结<7>将字符串插入到另一个字符串的指定位置(串)
- 第十五周 将字符串插入到另一个字符串指定的位置
- 第十五周OJ(6)将字符串插入到另一个字符串的指定位置(串)
- 第十五周oj训练——将字符串插入到另一个字符串的指定位置(串)(2274)
- 第15周OJ实践7 将字符串插入到另一个字符串的指定位置(串)
- 第15周 oj Problem G: 将字符串插入到另一个字符串的指定位置(串)
- 第十五周-将字符串插入到另一个字符串的指定位置(串)
- 第十五周-OJ-G将字符串插入到另一个字符串的指定位置(串)
- 第十五周 OJ 将一个字符串插入另一个字符串的指定位置
- PHP:将一个字符创插入到另一个字符串的指定位置
- 将字符串插入到另一个字符串的指定位置
- php 在字符串指定位置插入新字符
- 【Java】在一个字符串指定位置插入字符串
- 在字符串指定位置插入一段字符串的php代码
- 向字符串中指定位置插入字符
- 详解C语言在字符串的指定位置插入字符
- Java的方式向HTML形式的字符串中指定位置插入信息
- Python:字符串中指定位置插入一个字符
- 把一个字符串插到另一个字符串的指定位置