回覆列表
-
1 # ldnuh11115
-
2 # 使用者7724043881117
可以直接比較
str=="abc" 為真,因為是相同的。
上式等價於 "abc"==str
string str2(‘a’); 是錯誤的,strin建構函式無法將字元型轉為字串。
應該為 string str2("a",100); //100個a
str2==’a‘ 是錯誤的,不能將字元型別和字元陣列型別比較。
str2=="a" 和前面是一個道理。
string 型別和C字串型別直接比較就行了,過載了運算子的。
比較字元可以直接使用==比較運算子,如:char c1="a",c2="b";if(c1==c2) printf("%c is same as %c.",c1,c2);else printf("%c is different to %c",c1,c2);若是字串,則需要使用字串函數了,strcmpchar s1[]="abc",s2[]="xyz";if(strcmp(s1,s2)==0) printf("%s is same as %s.",s1,s2);也可以忽略大小寫來比較,使用函式stricmp 中間的i意思是ignore case sensitive還可以指定長度比較,strncmp,如:char s1[]="abc",s2[]="abcdefg";if(strncmp(s1,s2,3)==0) printf("first 3 characters are same");若不是從開頭位置開始比較,如:char s1[]="abc",s2[]="xyzabc"if(strncmp(s1,&s2[3],3)==0) 就是比較s1和s2的第3個字元開始的內容