【1】strcmp
int strcmp(const char *s1, const char *s2);
- 功能:比较两个字符串的大小
- 参数:char *地址
- 返回:
- s1 > s2 返回1
- s1 < s2 返回-1
- s1 = s2 返回0
【2】strncmp
int strncmp(const char *s1, const char *s2, size_t n);
- 功能:比较前n位字符串的大小
- 参数:char *传递字符串的地址, n比较的位数
- 返回:
- s1 > s2 返回1
- s1 < s2 返回-1
- s1 = s2 返回0
1 #include <stdio.h>
2 #include <string.h>
3
4 int main(int argc, const char *argv[])
5 {
6 char a[] = "abcDe";
7 char b[] = "abcde";
8 int i = 0, sign = 0;
9
10 while(a[i] != '\0' && b[i] != '\0') //只比较两者都有数据的部分
11 {
12 if(a[i] > b[i])
13 {
14 sign = 1;
15 printf("sign = %d\n",sign);
16 return 0;
17 }
18 if(a[i] < b[i])
19 {
20 sign = -1;
21 printf("sign = %d\n",sign);
22 return 0;
23 }
24
25 i++;
26 } //结束while:a[i]=='\0' && b[i]=='\0' a[i]=='\0' b[i]=='\0'
27
28 if(a[i] == '\0' && b[i] != '\0')
29 {
30 sign = -1;
31 printf("sign = %d\n",sign);
32 return 0;
33 }
34
35 if(a[i] != '\0' && b[i] == '\0')
36 {
37 sign = 1;
38 printf("sign = %d\n",sign);
39 return 0;
40 }
41
42 if(a[i] == '\0' && b[i] == '\0')
43 {
44 sign = 0;
45 printf("sign = %d\n",sign);
46 return 0;
47 }
48
49 //以上使用c代码实现的strcmp函数
50
51 // printf("ret = %d\n", strcmp(a,b));
52 // printf("ret = %d\n", strncmp(a,b,4));
53
54 return 0;
55 }