⑴ c语言中 memcmp 和 strcmp 函数有哪些区别
memcmp按字节比较,可以设置比较的位数 strcmp按字符比较,只能比较整个字符串 都是用ASCII码进行比较,效率在数量级上不会相差太大的 望采纳
⑵ c语言中的strcmp函数
c风格字符串是以'\0'为结束标志的。如果你的name[10]没有初始化,用scanf得到前3个字符为abc,后面的是随机的,当你使用strcmp(name,
"abc")的时候,有可能你的name低第四个字符正好是'\0',那么此时就是两个相同,否则就是不同。
举个例子
如果你的name的分布是"abc\0defghi";此时你使用strlen获取他的长度将会是3,这就是c风格字符串以'\0'结束,后面的就不考虑了,使用strcmp也是同样的道理。
解决的办法是你在name定义的时候初始化
两种方法
1、char
name[10]
=
{0};
2、char
name[10];
memset(name,
0,
sizeof(name));
⑶ c语言中strcmp(p->name,s)是什么意思
p=head; /*将头指针赋给p*/
while(strcmp(p->name,s) && p != NULL) /*当记录的姓名不是要找的,或指针不为空时*/
{
p=p->next; /*移动指针,指向下一结点*/
}
这样会看的更清楚
这是单向链表搜索.
strcmp(str1,str2) 函数用来比较两个string ,返回一个int 值来表示这两个 string 的关系。
如果两个string相等, 返回0, 如果不等就返回第一个不等的字符的关系。例如:
strcmp("abc","abc") 两个string相等,所以返回值为 0 ;
strcmp("abc","acc") 两个string不等,第一个不等的字符是'b' 和 ‘c’, 而‘b' 的ascii吗值小于c,所以函数返回一个小于0的整数, 具体是几,你不用关心,因为不一定是几,但一定小于0.表示第一个string小于第二个string。
strcmp("acc","abc") string不等,结果和上面相反,返回一个不一定是几的正整数。
而在c语言中,因为没有布尔类型变量,所以if 靠 所以 bits 的值来判断真假,全零表示假,其他一律为真,简单的说,就是如果if()括号内的表达式为0时为假,其他所有情况都为真(记住是数值0,而不是字符‘0’, 因为字符‘0’的数值不是0. 如果你不明白括号里面的也无所谓。你可以试试
print 0 和 print (int)‘0’ , 你就看出区别了。)
而上面的程序while(strcmp(p->name,s) && p != NULL) 是说,比较用户输入的名字s与p节点的name,如果相等,strcmp返回0, while条件为假,循环结束。
如果s与name不等,strcmp返回一个不为0的整数,条件为真,然后再判断p是不是尾节点,P!=Null 就是判断是不是最后一个节点,如果是最后一个节点,就是说p=null, 那么就返回假,真&&假 为假, 条件为假,循环结束。
如果p!=null,既不是最后一个节点,则返回真,真&&真为真,所以进入循环p=p->next;/*移动指针,指向下一结点*/,而后重复判断while条件,直到找到相同名字,或者链表结束。
你这个函数有一个前提条件,就是头结点head不能为空,如果head节点为空while(strcmp(p->name,s) && p != NULL)这里要出错。
⑷ C语言strcmp和直接“==”有什么区别
比较两个字符串的大小用strcmp函数,这个函数内是依次比较两个字符串的每个字符,一直到遇到不同的字符或某个字符串的结尾为止。
char
ch1[20]
=
"hello";
char
ch2[20]
=
"heworld";
而如果ch1
==
ch2这样对比的是两个字符串的首地址是否相同,而不是字符串的内容按照字典序的大小。
⑸ C语言的strcmp是什么意思
strcmp(str1,str2)函数就是比较参数中两个字符串str1 和 str2的大小(大小写敏感,即"A" != "a"),如果完全相等,返回0,如果str1 < str2(按照字母顺序比较),返回-1,如果str1 > str2,则返回1。
上面的代码都是在比较字符串sRuleGroup是否等于"PST","PPP"等,然后根据不同的比较结果作不同是事情。。。
⑹ C语言中:strcmp函数如何使用
原型:extern int strcmp(const char *s1,const char * s2);
用法:#include <string.h>
功能:比较字符串s1和s2。
相关函数:wcscmp
一般形式:strcmp(字符串1,字符串2)
说明:
当s1<s2时,返回值<0
当s1=s2时,返回值=0
当s1>s2时,返回值>0
即:两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\0'为止。如:
"A"<"B" "a">"A" "computer">"compare"
特别注意:strcmp(const char *s1,const char * s2)这里面只能比较字符串,不能比较数字等其他形式的参数。
⑺ C语言strcmp(name,eng[i].name)什么意思
strcmp是C的库函数,功能是把()中的形参指针指向的字符串比较一下,按对应字符的ASCII码大小确定返回值:前者大于后者时返回1,相等时返回0,前者小于后者时返回-1。strcmp(name,eng[i].name)的意思就是比较name和eng[i].name指向的字符串谁大谁小或相等。
⑻ C语言中strcmp是什么意思有什么功能和作用
strcmp是比较两个字符串的大小,两个字符串相同时返回0,第一个字符串大于第二个字符串时返回一个正值,否则返回负值.
比较两个字符串的算法是:逐个比较两个串中对应的字符,字符大小按照ASCII码值确定,从左向右比较,如果遇到不同字符,所遇第一对不同字符的大小关系就确定了两个字符串的大小关系,如果未遇到不同字符而某个字符串首先结束,那么这个字符串是较小的,否则两个字符串相等。
具体如下:
1、简介C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
2、基本介绍
C语言,是一种通用的、过程式的编程语言,广泛用于系统与应用软件的开发。具有高效、灵活、功能丰富、表达力强和较高的移植性等特点,在程序员中备受青睐。最近25年是使用最为广泛的编程语言。
3、运算
C语言的运算非常灵活,功能十分丰富,运算种类远多于其它程序设计语言。在表达式方面较其它程序语言更为简洁,如自加、自减、逗号运算和三目运算使表达式更为简单,但初学者往往会觉的这种表达式难读,关键原因就是对运算符和运算顺序理解不透不全。当多种不同运算组成一个运算表达式,即一个运算式中出现多种运算符时,运算的优先顺序和结合规则显得十分重要。在学习中,对此合理进行分类,找出它们与数学中所学到运算之间的不同点之后,记住这些运算也就不困难了,有些运算符在理解后更会牢记心中,将来用起来得心应手,而有些可暂时放弃不记,等用到时再记不迟。