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

Posted

tags:

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

dest:abcdefg
src:12345
pos:3
output:abc12345defg:14

必须要保证dest足够长,这个我没有判断,代码如下。
int length = strlen(src); //得到src的长度
for(int i = strlen(dest)-1; i >= pos; i--)dest[i+length] = dest[i];//dest中pos之后的元素后移
for(int j = pos; j < pos+length; j++)dest[j]=src[j-pos];//插入元素
printf("%s",dest);
参考技术A void insert(char *src, char *dest, int pos)

int len = strlen(dest);
char *temp = new char[len+1];
char *pcurr = dest;

memset(temp,0,len+1);
if(pos<=len)

pcurr += pos;
strcpy(temp,pcurr);
strcpy(pcurr,src);
pcurr += strlen(src);
strcpy(pcurr,temp);

else
printf("pos overflow !");
delete []temp;

C语言求救,急啊,谢谢了~!

各位C语言高手们,我快被这几道题逼疯了,救救我吧! 1,输入一个字符和一个数(小于5),把这个字符插入到一个字符数组S[10]=“ABCDE”中指定的位置上。 比如:输入*和3,输出是:AB*CDE 2,给出两个字符串S,T,输出字符串S,要求输出的S中不包括T中含有的字符。如: S:ABBCDDEFFG T: BDXYZ 屏幕的输出是:ACEFG 3,写两个函数,分别求两个整数的最大公约数和最小公约数,用主函数调用这两个函数,并输出结果,两个整数由键盘输入。 4,写一个函数,将两个字符串连接起来,要求不能用strcat。 希望大家帮帮我吧,谢谢了! 拜托回答的时候把题号标清楚,谢谢!

参考技术A 1
#include<stdio.h>
void
main()

char
s[10]="ABCDE",a;
int
i,n;
printf("请输入一个字符:");
a=getchar();
printf("请输入一个小于5的正整数:");
scanf("%d",&n);
for(i=9;i>n;i--)
s[i]=s[i-1];
s[n]=a;
printf("%s",s);

2
#include<stdio.h>
void
main()

char
s[30],t[30],*p=0,*q=0;
printf("请输入第一个字符串S:");
scanf("%s",&s);
printf("请输入第二个字符串T:");
scanf("%s",&t);
for(p=s;*p!='\0';p++)
for(q=t;*q!='\0';q++)
if(*p==*q)
*p=1;
for(p=s;*p!='\0';p++)
if(*p!=1)
printf("%c",*p);

3
#include<stdio.h>
int
gongyue(int
num1,int
num2);
void
main()

int
a,b;
printf("请输入两个整数:");
scanf("%d%d",&a,&b);
printf("最大公约数是%d\n",gongyue(a,b));

int
gongyue(int
num1,int
num2)

int
x,y,temp;
if(num1>num2)

temp=num1;
num1=num2;
num2=temp;

x=num1;
y=num2;
while(y!=0)

temp=x%y;
x=y;
y=temp;

return
x;

/*最小公约数是都是1,你是想问最小公倍数吧?在另一个函数我就不知道了,
不过最小公倍数是a*b/x,你再自己做吧*/
4
#include<stdio.h>
void
main()

char
a[40],b[10],*p=0,*q=0;
printf("请输入第一个字符串:");
scanf("%s",&a);
printf("请输入第二个字符串:");
scanf("%s",&b);
for(p=a;*p!='\0';p++);
for(q=b;*q!='\0';q++)

*p=*q;
p++;

*p='\0';
printf("%s\n",a);

终于写完了,累死我了,这么多题就给5分,太不仁道了吧

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

用C语言编写程序,实现在数组中指定位置插入一个新的数字?(数组不是排序好的)谢谢

用C语言实现 原字符串中指定的子串的的查找与替换代码?注:一定要有用户自己输入指定子串的那个过程!

c语言:如何将字符串中指定的字符替换为另一个指定字符

c语言:如何将字符串中指定的字符替换为另一个指定字符

c语言:如何将字符串中指定的字符替换为另一个指定字符

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