C语言实现:将一个字符串插入到另一个字符串的指定位置
生活随笔
收集整理的這篇文章主要介紹了
C语言实现:将一个字符串插入到另一个字符串的指定位置
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
示例一:
char *insert(char *s1, char *s2, int n) {int len1 = 0, len2 = 0, j = 0, len3, k = 0;char s4[30];char *s3 = s4;if (s1 == NULL)return NULL;if (s2 == NULL)return s1;len1 = strlen(s1);len2 = strlen(s2);if(n>len1)return NULL;for (int i = 0; i<n; i++) { j++; }for (int i= 0; i<len1; i++){ s4[k++] = s1[i];}for (int i = 0; i<len2; i++)s1[j++] = s2[i];for(int i=n;i<len1;i++)s1[j++]=s4[i];s1[j] = '\0';return s1; }int main(void) {char *s1 = (char*)malloc(20 * sizeof(char));char *s2 = (char*)malloc(20 * sizeof(char));int n;char s3[30];char *newstr = s3;printf("請輸入第一個字符串:");scanf("%s", s1);printf("請輸入第二個字符串:");scanf("%s", s2);printf("請輸入插入的位置:");scanf("%d", &n);newstr = insert(s1, s2, n);printf("%s\n", newstr);getchar();system("pause");return 0; }結果:
示例二:插入后原字符串后面的字符去掉了
void Insert(char* s1, char* s2, int n) {char *result = (char*)malloc(20 * sizeof(char));char *temp = result;//保存result的初始地址,因為后面要改變result//把s1的一部分賦給resultfor (int i = 0; i<n; i++){*result = *(s1++);result++;}//把s2的所有內容賦給resultwhile (*s2 != '\0'){*result = *(s2++);result++;}*result = '\0';//字符串結束符printf("%s\n", temp); }int main() {char *s1 = (char*)malloc(20 * sizeof(char));char *s2 = (char*)malloc(20 * sizeof(char));int n;printf("請輸入第一個字符串:");scanf("%s", s1);printf("請輸入第二個字符串:");scanf("%s", s2);printf("請輸入插入的位置:");scanf("%d", &n);Insert(s1, s2, n);getchar();system("pause");return 0; }?結果:
總結
以上是生活随笔為你收集整理的C语言实现:将一个字符串插入到另一个字符串的指定位置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: strcpy函数的使用
- 下一篇: 如何解决头文件重复包含和宏的重复定义问题