1、strcmp()
比较两个字符串的大小,比较的是字符 ASCII 码大小。代码如下,
#include <stdio.h> #include <stdlib.h> #include <string.h> int main() { /* int strcmp(const char *s1, const char *s2); 参数 s1:字符串 1 首地址 s2:字符串 2 首地址 返回值 相等:0 大于:>0 小于:<0 */ //字符串比较 char arr1[] = "AbCd"; char arr2[] = "abcd"; char arr3[] = "AbCd"; char arr4[] = "ABCD"; printf("%d\n", strcmp(arr1, arr2)); printf("%d\n", strcmp(arr1, arr3)); printf("%d\n", strcmp(arr1, arr4)); return 0; }
2、strncmp()
比较两个字符串的前 n
个字符的大小,比较的是字符 ASCII 码大小。代码如下,
#include <stdio.h> #include <string.h> int main () { /* int strncmp(const char *s1, const char *s2, size_t n); 参数 s1:字符串 1 首地址 s2:字符串 2 首地址 n:指定比较字符串的数量 返回值 相等:0 大于:> 0 小于:< 0 */ char str1[15]; char str2[15]; int ret; strcpy(str1, "abcdef"); strcpy(str2, "ABCDEF"); ret = strncmp(str1, str2, 4); if(ret < 0) { printf("str1 小于 str2"); } else if(ret > 0) { printf("str2 小于 str1"); } else { printf("str1 等于 str2"); } return(0); }
3、strcmp()和strncmp()区别
strcmp()
与strncmp()
作用相同。不同之处是,strncmp
函数是指定比较size
个字符。如果两个字符串s1
与s2
的前size
个字符相同,函数返回值为0
。代码如下,
#include <stdio.h> #include <string.h> int main(int argc, char **argv) { 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)); printf("strncmp(a,b,1) : %d\n", strncmp(a, b , 1)); printf("strncmp(a,c,2) : %d\n", strncmp(a, c , 2)); printf("strncmp(a,d,3) : %d\n", strncmp(a, d , 3)); return 0; }