#include<stdio.h> #include<string.h> #include<memory.h> void copys2s(char * src,char * dest,int loca) { char temp[100]; memset(temp,0,100);//初始化temp为0 strcpy(temp,src+loca-1); //把loca后面的字符串暂存起来 strcpy(src+loca-1,dest);//拷贝dest到src的从loca开始的位置 strcat(src,temp);//还原src从loca位置开始的字符串 } void main() { char src[100]; char dest[100]; int loca=0; printf("Please input src:"); gets(src); printf("Please input dest:"); gets(dest); printf("Please input the location:"); scanf("%d",&loca); copys2s(src,dest,loca); printf("New src is:%s\n",src); return; }[MAX]中的MAX是宏定义,预编译的时候用100替换。
#include<stdio.h>#define MAX 100void insert(char a[MAX],char b[MAX],int i){ int alen=0,blen=0,k; while(a[alen]!='\0') {alen++;}/*获取数组a的长度*/ while(b[blen]!='\0') {blen++;}/*获取数组b的长度*/ for(k=alen+blen-1;k>=blen+i-1;k--) a[k]=a[k-blen]; for(k=i-1;k<i+blen-1;k++) a[k]=b[k-i+1]; a[alen+blen]='\0';}void main(){ int i,n; char a[MAX],b[MAX]; printf("please input the 1st string:"); gets(a); printf("please input the 2nd string:"); gets(b); printf("please input the number:"); scanf("%d",&n); insert(a,b,n); for(i=0;a[i]!='\0';i++) printf("%c",a[i]);}
k就是一个循环变量alenblen是两个数组的长度就是size下面的voidmain()就是要求的将字符b插入字符a的第i个字符位置的函数,加头文件可以用strlen()直接求出两个字符串长度。。。#include#definemax100voidinsert(chara[max],charb[max],inti){intalen=0,blen=0,k;while(a[alen]!='\0'){alen++;}/*获取数组a的长度*/while(b[blen]!='\0'){blen++;}/*获取数组b的长度*/for(k=alen+blen-1;k>=blen+i-1;k--)a[k]=a[k-blen];for(k=i-1;k评论000加载更多