国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

C/C++中字符串常量的不相等性及字符串的Copy

2019-11-17 05:04:47
字體:
來源:轉載
供稿:網友
#include <iostream> 
 
void main(void) 

    if("test"=="test") 
    { 
        cout<<"相等"; 
    } 
    else 
    { 
        cout<<"不相等"; 
    } 
}

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

  為什么呢?

  答案在這里:因為字符串常量存儲在計算機內存中,兩個字符串常量的地址均不相同,所以這樣的比較自然就不會得到我們所需要的結果,假如要進行是否相等的比較應該使用strcmp()這個涵數進行比較!#include <iostream> 
#include <string> 
using namespace std; 
void main(void)   
{   
    if(strcmp("test","test")==0)   
    {   
        cout<<"相等";   
    }   
    else   
    {   
        cout<<"不相等";   
    } 
    cin.get(); 
}  strcmp()的函數原形是,int strcmp(const char* str1,const char* str)

  相當將會返回一個等于0的整數,不相等的時候將會返回一個非0整數。#include <iostream> 
#include <string> 
using namespace std; 
void main(void)   
{   
    char test[]="test str!"; 
    char str[15]; 
    strcpy(str,test); 
    cout<<str<<endl; 
 
    int a[]={1,2,3,4,5}; 
    int b[5]; 
    memcpy(b,a,sizeof(a)); 
    for(int i=0;i<5;i++) 
    { 
        cout<<b[i]<<","; 
    } 
    cin.get(); 
}  上面的代碼中的strcpy用來處理字符串數學組的copy,由于字符串數組屬于const char*也就是常量指針所以是不能用a="test str!";的方式賦值的,接在后面的memcpy用于處理非/0結尾的數組的copy處理,memcpy第三個參數是設置b在內存中所需要的內存空間大小所以用sizeof(a)*sizeof(int)來處理。
更多文章 更多內容請看C/C++技術專題專題,或

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 高安市| 环江| 彰化市| 灵璧县| 绥江县| 英德市| 蓬安县| 新疆| 永川市| 梅州市| 平湖市| 海丰县| 闽侯县| 临漳县| 株洲市| 安丘市| 玉溪市| 政和县| 桓台县| 和林格尔县| 中江县| 九龙县| 宁国市| 平阳县| 柳河县| 庆城县| 错那县| 铅山县| 沙雅县| 青岛市| 赣州市| 安阳县| 云浮市| 淳化县| 从化市| 进贤县| 四子王旗| 老河口市| 芜湖县| 城固县| 沁源县|