// 有一个字符数组a,在其中存放字符串“I am a boy.”,要求把该字符串复制到字符数组b中。
/*
#include<stdio.h>
int main()
{
    char a[]="I am a boy.";
    char b[20];
    int i;
    for(i=0;*(a+i)!='\0';i++)
    {
        *(b+i)=*(a+i);                  // 用地址法访问数组元素
    }
    *(b+i)='\0';
    printf("string a is: %s\n",a);
    printf("string b is:");
//    for(i=0;b[i]!='\0';i++)
    for(i=0;*(b+i)!='\0';i++)
    {
//        printf("%c",b[i]);
        printf("%c",*(b+i));
    }
    printf("\n");
    return 0;
}
*/
//用指针变量来实现
/*
#include<stdio.h>
int main()
{
    char a[]="I am a boy.";
    char b[20],*p1,*p2;
    int i;
    p1=a;
    p2=b;
    for(;*p1!='\0';*p1++,*p2++)
    {
        *p2=*p1;
    }
    *p2='\0';
    printf("sting a is:%s\n",a);
    printf("string b is:");
//    for(i=0;b[i]!='\0';i++)
    for(i=0;*(b+i)!='\0';i++)
    {
//        printf("%c",b[i]);
        printf("%c",*(b+i));
    }
    printf("\n");
    return 0;
}
*/
// 用函数调用来实现
#include<stdio.h>
int main()
{
    void copy_string(char *from,char *to);
c语言定义一个字符串    char *a="I am a teacher.";                    // 定义a为字符指针变量,指向一个字符串                   
    char b[]="You are a student.";                // 定义b为字符数组,内放一个字符串
    char *p=b;                                    // 字符指针变量p指向字符数组b的首元素
    printf("string a=%s\nstring b=%s\n",a,p);
    printf("\ncopy string a to string b:\n");
    copy_string(a,p);                              // 用字符串做形参
    printf("string a=%s\nstring b=%s\n",a,b);
    return 0;
}
/*
void copy_string(char *from,char *to)            // 形参是字符指针变量
{
    for(;*from!='\0';from++,to++);                // 只要a串没结束就复制到b数组
    {
        *to=*from;
    }
    *to='\0';
}
*/
/*
void copy_string(char *from,char *to)
{
    while((*to=*from)!='\0')
    {
        to++;
        from++;
    }
}
*/
/*
void copy_string(char *from,char *to)
{
    while((*to++=*from++)!='\0');
}
*/
/*
void copy_string(char *from,char *to)
{
    while(*from!='\0')
        *to++=*from++;
    *to='\0';
}*/
void copy_string(char *from,char *to)
{
    char *p1,*p2;
    p1=from;
    p2=to;
    while((*p2++=*p1++)!='\0');
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。