在C說話中比擬兩個字符串能否相等的辦法。本站提示廣大學習愛好者:(在C說話中比擬兩個字符串能否相等的辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是在C說話中比擬兩個字符串能否相等的辦法正文
C說話strcmp()函數:比擬字符串(辨別年夜小寫)
頭文件:#include <string.h>
strcmp() 用來比擬字符串(辨別年夜小寫),其原型為:
int strcmp(const char *s1, const char *s2);
【參數】s1, s2 為須要比擬的兩個字符串。
字符串年夜小的比擬是以ASCII 碼表上的次序來決議,此次序亦為字符的值。strcmp()起首將s1 第一個字符值減去s2 第一個字符值,若差值為0 則再持續比擬下個字符,若差值不為0 則將差值前往。例如字符串"Ac"和"ba"比擬則會前往字符"A"(65)和'b'(98)的差值(-33)。
【前往值】若參數s1 和s2 字符串雷同則前往0。s1 若年夜於s2 則前往年夜於0 的值。s1 若小於s2 則前往小於0 的值。
留意:strcmp() 以二進制的方法停止比擬,不會斟酌多字節或寬字節字符;假如斟酌到當地化的需求,請應用 strcoll() 函數。
【實例】對 4 組字符串停止比擬。
#include <string.h> main(){ char *a = "aBcDeF"; char *b = "AbCdEf"; char *c = "aacdef"; char *d = "aBcDeF"; printf("strcmp(a, b) : %d\n", strcmp(a, b)); printf("strcmp(a, c) : %d\n", strcmp(a, c)); printf("strcmp(a, d) : %d\n", strcmp(a, d)); }
輸入成果:
strcmp(a, b) : 32 strcmp(a, c) :-31 strcmp(a, d) : 0
C說話strcasecmp()函數:斷定字符串能否相等(疏忽年夜小寫)
頭文件:#include <string.h>
界說函數:
int strcasecmp (const char *s1, const char *s2);
函數解釋:strcasecmp()用來比擬參數s1 和s2 字符串,比擬時會主動疏忽年夜小寫的差別。
前往值:若參數s1 和s2 字符串雷同則前往0。s1 長度年夜於s2 長度則前往年夜於0 的值,s1 長度若小於s2 長度則前往小於0 的值。
典范
#include <string.h> main(){ char *a = "aBcDeF"; char *b = "AbCdEf"; if(!strcasecmp(a, b)) printf("%s=%s\n", a, b); }
履行成果:
aBcDeF=AbCdEf