C/C++ 字串比較的3種方法

文章推薦指數: 80 %
投票人數:10人

int strcmp(const char * str1, const char * str2);. strcmp() 如果判斷兩字串相等的話會回傳0,這必須牢記因為很容易混 ... 2021-03-23 C/C++教學 本篇ShengYu介紹C/C++字串比較的3種方法,寫程式中字串比較是基本功夫,而且也蠻常會用到的,所以這邊紀錄我曾經用過與所知道的字串比較的幾種方式,以下為C/C++字串比較的內容章節, C語言的strcmp C++string的compare() C++string的==operator 那我們就開始吧! C語言的strcmpC語言要判斷c-style字串是否相等通常會使用strcmp,要使用strcmp的話需要引入的標頭檔,strcmp函式原型為1intstrcmp(constchar*str1,constchar*str2); strcmp()如果判斷兩字串相等的話會回傳0,這必須牢記因為很容易混搖,很多程式bug就是這樣產生的,來看看下面的strcmp用法範例吧!cpp-string-compare.cpp12345678910111213141516//g++cpp-string-compare.cpp-oa.out#include#includeintmain(){constchar*str1="helloworld";constchar*str2="helloworld";if(strcmp(str1,str2)==0){printf("equal\n");}else{printf("notequal\n");}return0;} 結果如下,1equal 再來看看字串不相等的例子,strcmp是大小寫都判斷不同的,cpp-string-compare2.cpp12345678910111213141516//g++cpp-string-compare2.cpp-oa.out#include#includeintmain(){constchar*str1="helloworld";constchar*str2="HelloWorld";if(strcmp(str1,str2)==0){printf("equal\n");}else{printf("notequal\n");}return0;} 結果如下,1notequal 注意唷!if(strcmp(str1,str2))printf("notequal\n");這樣是不相等唷!如果要用strcmp來判斷std::string的話可以這樣寫,12345stringstr1="helloworld";stringstr2="helloworld";if(strcmp(str1.c_str(),str2.c_str())==0){printf("equal\n");} 不過比較std::string應該很少這樣寫,除非是什麼特殊情形,否則我們都會使用下列介紹的兩種方式, C++string的compare()這邊介紹C++string的compare(),string::compare()可以跟std::string做判斷以外也可以跟c-style字串作判斷,string::compare()判斷字串相等的話會回傳0,cpp-string-compare3.cpp1234567891011121314151617181920212223//g++cpp-string-compare3.cpp-oa.out#include#includeusingnamespacestd;intmain(){stringstr1="helloworld";stringstr2("helloworld");if(str1.compare("HelloWorld")==0){cout<#includeusingnamespacestd;intmain(){stringstr1="helloworld";stringstr2("helloworld");//==if(str1=="HelloWorld"){cout<



請為這篇文章評分?