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

首頁 > 學院 > 開發(fā)設(shè)計 > 正文

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

2019-11-17 05:10:32
字體:
供稿:網(wǎng)友

//程序作者:管寧
//站點:www.cndev-lab.com
//所有稿件均有版權(quán),如要轉(zhuǎn)載,請務(wù)必聞名出處和作者

#include <iostream>
using namespace std;
void main(void)
{
if("test"=="test")
{
cout<<"相等";
}
else
{
cout<<"不相等";
}
}


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

為什么呢?

答案在這里:因為字符串常量存儲在計算機內(nèi)存中,兩個字符串常量的地址均不相同,所以這樣的比較自然就不會得到我們所需要的結(jié)果,假如要進行是否相等的比較應(yīng)該使用strcmp()這個涵數(shù)進行比較!
//程序作者:管寧
//站點:www.cndev-lab.com
//所有稿件均有版權(quán),如要轉(zhuǎn)載,請務(wù)必聞名出處和作者

#include <iostream>
#include <string>
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)

相當將會返回一個等于0的整數(shù),不相等的時候?qū)祷匾粋€非0整數(shù)!
//程序作者:管寧
//站點:www.cndev-lab.com
//所有稿件均有版權(quán),如要轉(zhuǎn)載,請務(wù)必聞名出處和作者

#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)*sizeof(int));
for(int i=0;i<5;i++)
{
cout<<b[i]<<",";
}
cin.get();
}


上面的代碼中的strcpy用來處理字符串數(shù)學組的copy,由于字符串數(shù)組屬于const char*也就是常量指針所以是不能用a="test str!";的方式賦值的,接在后面的memcpy用于處理非/0結(jié)尾的數(shù)組的copy處理,memcpy第三個參數(shù)是設(shè)置b在內(nèi)存中所需要的內(nèi)存空間大小所以用sizeof(a)*sizeof(int)來處理! 更多文章 更多內(nèi)容請看C/C++技術(shù)專題專題,或

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 公安县| 靖安县| 乌兰察布市| 凉城县| 青岛市| 聊城市| 上高县| 水城县| 永仁县| 桐柏县| 武定县| 宜兴市| 延边| 桓仁| 平舆县| 湖南省| 南昌市| 阿合奇县| 乳源| 利辛县| 绿春县| 酒泉市| 翼城县| 师宗县| 葵青区| 丹阳市| 湘潭市| 即墨市| 郁南县| 麻江县| 雅安市| 万盛区| 濮阳县| 东乡县| 西和县| 牡丹江市| 霍林郭勒市| 安塞县| 馆陶县| 富裕县| 海城市|