将一个字符串插入到另一个字符串的指定位置。c语言编写

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将一个字符串插入到另一个字符串的指定位置。c语言编写相关的知识,希望对你有一定的参考价值。

将指定位置以后的字符分别往后移一个位置,再将要插入的字符串放到指定位置就行了,别忘了最后一个字符要赋为'\0’哦亲~~代码如下,仅供参考~
void insert(char * str,char c,int position)

int i;
int len=strlen(str);
for (i=strlen(str)-1;i>=position;i--)

str[i+1]=str[i];

str[position]=c;
str[len+1]='\0';

str就是需要插入的字符串,c是需要插入的字符,position是插入的位置,即字符的下标(从0开始)
嘿嘿,希望对你有用哦~~
参考技术A 已通过测试,望采纳
#include <stdio.h>
#include <string.h>
void main()
char str1[30],str2[10];
int n;
char t[30];
int length1,length2,length3;
int i,j=0;
printf("Input the orignal string:");
scanf("%s",str1);
printf("Input the string you want to insert:");
scanf("%s",str2);
length1=strlen(str1);
length2=strlen(str2);
printf("Input the position:");
scanf("%d",&n);
for(i=n;i<length1;i++)
t[j++]=str1[i];
length3=j;
j=n;
for(i=0;i<length2;i++)
str1[j++]=str2[i];
for(i=0;i<length3;i++)
str1[j++]=t[i];
str1[j]='\0';
printf("%s",str1);
追问

你能再把下面这部分解释一下吗,我没看懂,谢谢

for(i=n;i<length1;i++)
t[j++]=str1[i];
length3=j;
j=n;
for(i=0;i<length2;i++)
str1[j++]=str2[i];
for(i=0;i<length3;i++)
str1[j++]=t[i];
str1[j]='\0';
printf("%s",str1);

追答

哪里不懂再追问
for(i=n;i<length1;i++)保存自插入位置后str1中字符存入t[]中
t[j++]=str1[i];//str1中的内容赋值给t,t代表新串 t[j++]先对t[j]赋值,j再自加,少些点语句
length3=j;//记录自插入位置后str1中字符的个数
j=n;
for(i=0;i<length2;i++)//在str1中n位置起插入str2中全部字符
str1[j++]=str2[i];
for(i=0;i<length3;i++)//将str1中自n起的其余字符(已保存在t[]中)重新赋值给str1
str1[j++]=t[i];
str1[j]='\0'; //给新串str1添加'\0'(原来的已被覆盖掉,因为至少会插入一个字符)
printf("%s",str1);

本回答被提问者采纳
参考技术B #include <iostream>
using namespace std;
void main()

int len1,len2,len4,i,x,k=0;
char a[100],b[100], c[100];
cout<<"请输入一个字符串:"<<endl;
cin>>a;
cout<<"请输入要插入的字符串:"<<endl;
cin>>b;
len1=strlen(a);
len2=strlen(b);
cout<<"请输入你要插入的位置:"<<endl;
cin>>x;
for(i=x-1;a[i]!='\0';i++)
c[k++]=a[i];
len4=x-1;
for(i=0;i<len2;i++)
a[len4++]=b[i];
for(i=0;i<len1-x+1;i++)
a[len4++]=c[i];
a[len4]=0;
cout<<a<<endl;

将字符串插入到另一个字符串的指定位置(串)

题目描述

将字符串t插入到字符串s中,在位置pos后插入。不得使用字符串操作函数,输出组合成的字符串。

输入要求

输入两个字符串(t和s)和要插入的位置(pos)

输出要求

输出组合后的字符串

假如输入

qwe
jij
3

应当输出

jijqwe
 1 import java.util.Scanner;
 2 
 3 
 4 public class Main 
 5 {
 6     public static void main(String args[])
 7     {
 8         int n=0;
 9         Scanner scan=new Scanner(System.in);
10         String t=scan.next();
11         String s=scan.next();
12         n=scan.nextInt();
13         StringBuffer stringbuffer=new StringBuffer(s);
14         s=stringbuffer.insert(n, t).toString();
15         System.out.println(s);
16         
17     }
18 }

 

以上是关于将一个字符串插入到另一个字符串的指定位置。c语言编写的主要内容,如果未能解决你的问题,请参考以下文章

如何编写函数,用C++语言实现将一个字符串插入到另一个字符串的指定位置,最好用指针指向字符串来实现?

将字符串插入到另一个字符串的指定位置(串)

c语言用指针法在一个字符串的指定位置插入一个字符串

c语言用指针将一个字符串插入另一个字符串中指定位置

怎样用C语言获取屏幕上指定位置处的字符的值?

C语言编程:5、编一个程序,将两个字符串连接起来,不要用strcat函数.