C/C++ strcmp 用法與範例

本篇 ShengYu 介紹 C/C++ strcmp 用法與範例,strcmp 是用來判斷兩個字串是否相同的函式,以下介紹如何使用 strcmp 函式。

C/C++ 要判斷 c-style 字串是否相同可以使用 strcmp,要使用 strcmp 的話需要引入的標頭檔 <string.h>,如果要使用 C++ 的標頭檔則是引入 <cstring>
strcmp 函式原型為

1
int strcmp(const char * str1, const char * str2);

strcmp() 如果判斷兩字串相同的話會回傳 0,這必須牢記因為很容易混搖,很多程式 bug 就是這樣產生的,所以 if (strcmp(str1, str2)) printf("not equal\n"); 這樣寫的話結果會是 not equal 唷!來看看下面的 strcmp 用法範例吧!

cpp-strcmp.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// g++ cpp-strcmp.cpp -o a.out
#include <stdio.h>
#include <string.h>

int main() {
const char *str1 = "hello world";
const char *str2 = "hello world";

if (strcmp(str1, str2) == 0) {
printf("equal\n");
} else {
printf("not equal\n");
}

return 0;
}

結果如下,

1
equal

再來看看字串不相同的例子,strcmp 是大小寫都判斷不同的,

cpp-strcmp2.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// g++ cpp-strcmp2.cpp -o a.out
#include <stdio.h>
#include <string.h>

int main() {
const char *str1 = "hello world";
const char *str2 = "HELLO WORLD";

int ret = strcmp(str1, str2);
if (ret > 0) {
printf("str1 is greater than str2\n");
} else if (ret < 0) {
printf("str1 is less than str2\n");
} else { // ret == 0
printf("str1 is equal to str2\n");
}

return 0;
}

結果如下,

1
str1 is greater than str2

以上就是 C/C++ strcmp 的用法與範例介紹,
如果你覺得我的文章寫得不錯、對你有幫助的話記得 Facebook 按讚支持一下!

其它參考
strcmp - C++ Reference
https://www.cplusplus.com/reference/cstring/strcmp/

其它相關文章推薦
如果你想學習 C++ 相關技術,可以參考看看下面的文章,
C/C++ 新手入門教學懶人包
C/C++ 字串比較的3種方法
C/C++ strncmp 用法與範例
C/C++ memcmp 用法與範例