欧美另类日韩中文色综合,天堂va亚洲va欧美va国产,www.av在线播放,大香视频伊人精品75,奇米777888,欧美日本道免费二区三区,中文字幕亚洲综久久2021

c/c++中字符串常量的不相等性,以及字符串的copy -電腦資料

電腦資料 時間:2019-01-01 我要投稿
【www.lotusphilosophies.com - 電腦資料】

   

    #include

    using namespace std;

    void main(void)

    {

    if("test"=="test")

    {

    cout<<"相等";

    }

    else

    {

    cout<<"不相等";

    }

    }

    上面的代碼我們測試兩個內(nèi)容為test的字符串常量是否相等,按照常理,應(yīng)該是相等的,這些在一些過程式語言中會得到相等的結(jié)論,但在c/c++卻不是這樣,

c/c++中字符串常量的不相等性,以及字符串的copy

。

    為什么呢?

    答案在這里:因?yàn)樽址A看鎯υ谟?jì)算機(jī)內(nèi)存中,兩個字符串常量的地址均不相同,所以這樣的比較自然就不會得到我們所需要的結(jié)果,如果要進(jìn)行是否相等的比較應(yīng)該使用strcmp()這個涵數(shù)進(jìn)行比較!

    #include

    #include

    using namespace std;

    void main(void)

    {

    if(strcmp("test","test")==0)

    {

    cout<<"相等";

    }

    else

    {

    cout<<"不相等";

    }

    cin.get();

    }

   

    strcmp()的函數(shù)原形是,int strcmp(const char* str1,const char* str)

    相當(dāng)將會返回一個等于0的整數(shù),不相等的時候?qū)祷匾粋非0整數(shù)!

   

    #include

    #include

    using namespace std;

    void main(void)

    {

    char test[]="test str!";

    char str[15];

    strcpy(str,test);

    cout<

    int a[]={1,2,3,4,5};

    int b[5];

    memcpy(b,a,sizeof(a)*sizeof(int));

    for(int i=0;i<5;i++)

    {

    cout<

    }

    cin.get();

    }

    //程序作者:管寧

    //站點(diǎn):www.cndev-lab.com

    //所有稿件均有版權(quán),如要轉(zhuǎn)載,請務(wù)必著名出處和作者

    上面的代碼中的strcpy用來處理字符串?dāng)?shù)學(xué)組的copy,由于字符串?dāng)?shù)組屬于const char*也就是常量指針?biāo)允遣荒苡胊="test str!";的方式賦值的,接在后面的memcpy用于處理非\0結(jié)尾的數(shù)組的copy處理,memcpy第三個參數(shù)是設(shè)置b在內(nèi)存中所需要的內(nèi)存空間大小所以用sizeof(a)*sizeof(int)來處理!

最新文章