- 字符之间的比较
通过"=="进行直接判断
char s1 = 'c';
char s2 = 'd';
if(s1==s2){
}
- 字符串之间的比较(stcmp,strncmp)
(1)通过调用C库函数strcmp,其声明原型如下:
int strcmp(const char *str1, const char *str2)
#include <stdio.h>
#include <string.h>
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 <stdio.h>
#include <string.h>
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原理就是从这两个字符串指针指向的地址开始对比,知道字符串最后一个字符\0为止,从而实现两个字符串大小判断比较。
|