c语言判断字符相等的函数 c语言判断两个字符串是否相等的函数

C语言 用调用函数判断字符串是否相等#include "stdio.h"
#include "string.h"
main()
{
char str1[100];
char str2[100];
char a;
printf("请输入第一个字符串,该字符串为:\n",str1);
gets(str1);
printf("请输入第二个字符串,该字符串为:\n",str2);
gets(str2);
a=strcmp(str1,str2);
if((a==0))
printf("两个字符串相等!\n");
else
printf("两个字符串不等!\n");
while(1){}
}
//int strcmp(char *str1,char *str2)
C语言比较两个字符串相等的问题,请人详细讲解C语言字符串是一系列字符,也就是char类型排列而成的 。一个字符是char类型 , 一系列字符如何表示?用他们的第一个字符的地址表示,因为字符串在地址上也是连续排列的 。并且用\0,在物理上是一个字节的全0位 , 来表示字符串结束 。所以"abcde",空间上是'a'
'b'
'c'
'd'
'e'
'\0'strcmp的参数都是char*,也就是指向字符的指针,原理是从两个指针指向的地址开始对比,直到其中一个\0为止 。判断相等与否 。实现上是每个字符相减 。单纯的==,比较的是字符串手地址是否相等 , 这样比较 , 不但比较不了两个字符串相等与否,而且要想相等,还必须两个字符串指向同一个地址 。
C语言中判断两个字符串是否相同的方法有哪些?C语言提供了几个标准库函数,可以比较两个字符串是否相同 。以下是用strcmp()函数比较字符串的一个例子:\x0d\x0a\x0d\x0a#include \x0d\x0a#include \x0d\x0avoid main (void);\x0d\x0avoid main(void)\x0d\x0a{\x0d\x0achar* str_1 = "abc" ; char * str_2 = "abc" ; char* str_3 = "ABC" ;\x0d\x0aif (strcmp(str_1, str_2) == 0)\x0d\x0aprintf("str_1 is equal to str_2. \n");\x0d\x0aelse\x0d\x0aprintf("str_1 is not equal to str_2. \n");\x0d\x0aif (strcmp(str_1, str_3) == 0)\x0d\x0aprintf("str_1 is equal to str_3.\n");\x0d\x0aelse\x0d\x0aprintf("str_1 is not equalto str_3.\n");\x0d\x0a}\x0d\x0a\x0d\x0a上例的打印输出如下所示:\x0d\x0astr_1 is equal to str_2.\x0d\x0astr_1 is not equal to str_3.\x0d\x0a\x0d\x0astrcmp()函数有两个参数 , 即要比较的两个字符串 。strcmp()函数对两个字符串进行大小写敏感的(case-sensitiVe)和字典式的(lexicographic)比较,并返回下列值之一:\x0d\x0a----------------------------------------------------\x0d\x0a返回值意义\x0d\x0a----------------------------------------------------\x0d\x0a0第一个字符串大于第二个字符串\x0d\x0a----------------------------------------------------\x0d\x0a在上例中 , 当比较str_1(即“abc”)和str_2(即“abc”)时,strcmp()函数的返回值为0 。然而,当比较str_1(即"abc")和str_3(即"ABC")时 , strcmp()函数返回一个大于0的值 , 因为按ASCII顺序字符串“ABC”小于“abc” 。\x0d\x0astrcmp()函数有许多变体,它们的基本功能是相同的,都是比较两个字符串,但其它地方稍有差别 。下表列出了C语言提供的与strcmp()函数类似的一些函数:\x0d\x0a-----------------------------------------------------------------\x0d\x0a函数名作用\x0d\x0a-----------------------------------------------------------------\x0d\x0astrcmp()对两个字符串进行大小写敏感的比较\x0d\x0astrcmpi()对两个字符串进行大小写不敏感的比较\x0d\x0astricmp()同strcmpi()\x0d\x0astrncmp()对两个字符串的一部分进行大小写敏感的比较\x0d\x0astrnicmp()对两个字符串的一部分进行大小写不敏感的比较\x0d\x0a-----------------------------------------------------------------\x0d\x0a在前面的例子中,如果用strcmpi()函数代替strcmp()函数,则程序将认为字符串“ABC”等于“abc” 。
C语言中如何比较两个【字符】或者【字符串】是否相等?C语言中用strcmp函数比较字符和字符串是否相等 。

推荐阅读