- 字符之间的比较
通过"=="进行直接判断
char s1 = 'c';//定义一个字符变量s1,内容是c
char s2 = 'd'; //定义一个字符变量s2,内容是d
if(s1==s2){//通过==判断是否相同
//相等
}
- 字符串之间的比较(stcmp,strncmp)
(1)通过调用C库函数strcmp,其声明原型如下:
int strcmp(const char *str1, const char *str2)
#include#include int main () { char str1[15]; char str2[15]; int ret; strcpy(str1, "abcdef"); strcpy(str2, "ABCDEF"); ret = strcmp(str1, str2); if(ret < 0) { printf("str1 小于 str2"); } else if(ret > 0) { printf("str1 大于 str2"); } else { printf("str1 等于 str2"); } return(0); }
编译运行结果:
str1 大于 str2
(2)部分字符串比较,通过调用C库函数strncmp,其声明如下:
int strncmp(const char *str1, const char *str2, size_t n)
n – 要比较的最大字符数。
#include#include int main () { 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); }
str2 小于 str1
3. 需要注意的问题:
两个字符串之间进行比较时,不能直接使用"“进行比较。原因是因为,单纯的”"比较的是这两个字符串的首地址,是一个无法预知的地址,所以这样是无法保证两个字符串指向同一个地址,也比较两个字符串是否相等。而strcmp、strncmp原理就是从这两个字符串指针指向的地址开始对比,知道字符串最后一个字符 为止,从而实现两个字符串大小判断比较。



