用三种方法实现对字符串的复制
(1)用字符数组名做函数参数
/*使用字符指针作为函数参数
Use character Pointers as function argument*/
#include <stdio.h>
int main()
{
char a[]="shu zhong jia zhe yu zhou" ;
char b[]="xin nian kuai le ";
char c[30];
char d[30];
void String_Copy(char first [],char second []);
void String_Output(char out[]);
String_Output(a);
printf("\n");
String_Output(b);
String_Copy(a,c);
printf("\n");
String_Copy(b,d);
String_Output(c);
printf("\n");
String_Output(d);
return 0;
}
/*字符串复制函数
first[]复制到second[]*/
void String_Copy(char first [],char second [])
{
int i=0;
do {
second[i]=first[i];
i++;
}while(first[i]!='\0');
}
/*字符串输出函数*/
void String_Output(char out[])
{
int i=0;
while(out[i]!='\0')
printf("%c",out[i++]);
}
输出结果:shu zhong jia zhe yu zhou
xin nian kuai le
shu zhong jia zhe yu zhou
xin nian kuai le
(2)用字符型指针做函数实参
#if(1)
#include <stdio.h>
int main()
{
char a[]="shu zhong jia zhe yu zhou" ;
char b[]="xin nian kuai le ";
char c[30];
char d[30];
char * first=a;
char * second=b;
void String_Copy(char first [],char second []);//复制函数声明
void String_Output(char out[]);//输出函数声明
String_Output(first);
printf("\n");
String_Output(second);
String_Copy(first,c);
printf("\n");
String_Copy(second,d);
String_Output(c);
printf("\n");
String_Output(d);
return 0;
}
/*字符串输出函数*/
void String_Output(char out[])
{
int i=0;
while(out[i]!='\0')
printf("%c",out[i++]);
}
/*字符串复制函数
first[]复制到second[]*/
void String_Copy(char first [],char second [])
{
int i=0;
do {
second[i]=first[i];
i++;
}while(first[i]!='\0');
}
#endif
输出结果:shu zhong jia zhe yu zhou
xin nian kuai le
shu zhong jia zhe yu zhou
xin nian kuai le
(3)用字符指针做函数形参和实参
#include <stdio.h>
int main()
{
char a[]="shu zhong jia zhe yu zhou" ;
char b[]="xin nian kuai le ";
char c[30];
char d[30];
char *P1=a, *P2=b,*P3=c,*P4=d;
void String_Copy(char * Pointer_1,char * Pointer_2 );
void String_Output(char * pointer_3);
String_Output(P1);
String_Output(P2);
String_Copy(P1,P3);
String_Copy(P2,P4);
String_Output(P3);
String_Output(P4);
return 0;
}
/*字符串复制函数*/
void String_Copy(char * Pointer_1,char * Pointer_2 )
{
while(*Pointer_1!='\0')
{
*Pointer_2=*Pointer_1;
Pointer_1++;
Pointer_2++;
}
}
/*字符串输出函数*/
void String_Output(char * pointer_3)
{
printf("%s\n",pointer_3);//输出字符串
}
输出结果:shu zhong jia zhe yu zhou
xin nian kuai le
shu zhong jia zhe yu zhou
xin nian kuai le
总结:可以看出,三种方式都可以实现且实现的效果完全一样。