这样:
#include
#include
int main ()
{
void copystr(char *,char *,int);
int m;
char str1[20],str2[20];
printf("input string:");
gets(str1);
printf("which character that begin to copy?");
scanf("%d",&m);
if(strlen(str1) < m)
{
printf("input error!");
}
else
{
copystr(str1,str2,m);
printf("result:%s\n",str2);
}
return 0;
}
void copystr(char *p1,char *p2,int m)
{
int n;
n = 0;
while(n < m - 1)
{
n++;
p1++;
}
while(*p1 != '\0')
{
*p2 = *p1;
p1++;
p2++;
}
*p2 = '\0';
}
注意事项
/*输入一个字符串,将该字符串中从第m个字符
开始的全部字符复制成另一个字符串。m由用户
输入,小于字符串的长度。*/
#include
#include
void mcopy(char array1[],char array2[],int m)
{
int i,j;
for(i=m-1,j=0;array2[j]!=0;i++,j++)
array1[i]=array2[j];
array1[i]=0;
}
int main()
{
char array1[20],array2[10];
int m;
printf("Give array1:");
gets(array1);
printf("Give array2:");
gets(array2);
printf("Give m:");
scanf("%d",&m);
mcopy(array1,array2,m);
printf("After changed:");
puts(array1);
return 0;
}
#include
#include
intcopy(char*p1,char*p2,intm);
intmain()
{
charstr1[40],str2[40];
printf("输入第一个字符串:\n");
gets(str1);
intm;
printf("输入第m个字符开始:\n");
scanf("%d",&m);
if(strlen(str1) printf("错误"); else { copy(str1,str2,m); printf("%s",str2); } return0; } intcopy(char*p1,char*p2,intm) { intn; n=0; while(n { n++; p1++; } while(*p1!='\0') { *p2=*p1; p1++; p2++; } } 扩展资料 C语言字符指针字符串复制 #include voidcopy(chardststr[],charsrcstr[]); intmain() { chara[100],b[100]; printf("Pleaseenterastring:"); gets(a);//输入字符串,存放数组a中 copy(b,a);//将字符数组a中的字符串复制到b中 printf("Thecopyis:\n"); puts(b);//输出复制后的字符串b return0; } voidcopy(char*dststr,char*srcstr) { while(*srcstr!='\0')//循环直到字符srcstr[i]是字符串的结束标志为止 { *dststr=*srcstr;//复制当前指针所指向的字符 srcstr++;//使srcstr指向下一个字符 dststr++;//使dststr指向下一个存储单元 } *dststr='\0';//在字符串dststr的末尾添加字符的结束标志,避免复制的字符串溢出 } /* //或则函数copy()编写成这样 voidcopy(char*dststr,char*srcstr) { do { *dststr=*srcstr;//复制当前指针所指向的字符 srcstr++;//使srcstr指向下一个字符 dststr++;//使dststr指向下一个存储单元 }while(*srcstr!='\0');//循环直到字符srcstr[i]是字符串的结束标志为止 } */ 事实上,还可以如下更为简洁的形式编写函数copy(): voidcopy(char*dststr,char*srcstr) { while((*dststr++=*srcstr++)!='\0')//循环直到字符srcstr[i]是字符串的结束标志为止 {} }
当然是一个字符了 你的函数的参数应该如下改
#include
int m=3;int i;
int sort(char *p3,char *p4)
{
for(i=m;i<10;i++){
p3[i]=p4[i];
}
}
int main(int argc, char *argv[])
{
char a[10]={"DIYICHUAN"};
char b[10]={"hhh/0"};
char *p1,*p2;
p1=&a[0];
p2=&b[0];
sort(p1,p2);
printf("%s",*p1);
return 0;
}
#include
int m=3;int i,j;
void sort(char st[],char ss[])
{
for(i=m;i<10;i++){
st[i]=ss[i];
}
}
int _tmain(int argc, _TCHAR* argv[])
{
char a[10]={"DIYICHUAN"};
char b[10]={"hhh/0"};
sort(a,b);
printf("%s",a);
return 0;
}