字符串copy函數

字符串copy函數技術推演

#include "stdio.h"
#include "stdlib.h"
#include "string.h"

//字符串copy函數技術推演

//字符串copy工作

//from形參,to形參的值不斷變化(不斷from和to的指向)
void copy_str21(char *from,char *to)
{
    for( ; *from!='\0'; from++,to++ )
    {
        *to = *from;
    }//不斷改變指針的指向
    *to = '\0';

    return;
}

//*操作 和 ++的操作
//++ 優先級高,但作爲後綴,先執行*操作
void copy_str22(char *from,char *to)
{
    for( ; *from!='\0'; )
    {
        *to++ = *from++;    //先執行*to = *from;  再執行from++,to++ 
    }//不斷改變指針的指向
    *to = '\0';

    return;
}

//不用手工添加‘\0’
void copy_str23(char *from,char *to)
{
    while( (*to = *from) !='\0' )  //執行完表達式(*to = *from)後,該表達式的值即爲*to的當前值
    {
        from++;
        to++;
    }

}

void copy_str24(char *from,char *to)
{
    while( (*to++ = *from++) != '\0' )
    {

    }

}

void copy_str25(char *from,char *to)
{
    while( (*to++ = *from++) )
    {

    }

}


void main()
{
    char *from = "abcdefg";
    char buf2[100];
    if( !'\0' )
    {
        printf("%d\n",'\0'); //'\0'的值爲0
    }

    copy_str21(from,buf2);
    printf("copy_str21:%s\n",buf2);
    copy_str22(from,buf2);
    printf("copy_str22:%s\n",buf2);
    copy_str23(from,buf2);
    printf("copy_str23:%s\n",buf2);
    copy_str24(from,buf2);
    printf("copy_str24:%s\n",buf2);
    copy_str25(from,buf2);
    printf("copy_str25:%s\n",buf2);
    system("pause");
    return;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章