strcmp c语言,c语言中strcmp是什么意思
strcmp c语言,c语言中strcmp是什么意思详细介绍
本文目录一览: strcmp在c语言中是什么意思呢?
函数简介
原型:extern int strcmp(const char *s1,const char * s2);
用法:#include
功能:比较字符串s1和s2。
说明:
当s1
<s2时,返回值<0
当s1=s2时,返回值=0
当s1>s2时,返回值>0
即:两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\0'为止。
如:
"A"<"B" "a">"A" "computer">"compare"
应用举例
举例1:(在VC6.0中运行通过)
#include
#include
int main()
{
char string[20];
char str[3][20];
int i;
for(i=0;i<3;i++)
gets(str[i]);
if(strcmp(str[0],str[1])>0)
strcpy(string,str[0]);
else
strcpy(string,str[1]);
if(strcmp(str[2],string)>0)
strcpy(string,str[2]);
printf("\nThe largest string is %s\n",string);
return 0;
}
举例2:(TC中运行通过)
// strcmp.c
#include
#include
int main()
{
char *s1="Hello, Programmers!";
char *s2="Hello, programmers!";
int r;
clrscr();
r=strcmp(s1,s2);
if(!r)
printf("s1 and s2 are identical");
else
if(r<0)
printf("s1 less than s2");
else
printf("s1 greater than s2");
getchar();
return 0;
}
字符串比较函数,两个字符串,从第一个字符开始比,如果相同,继续向下比,如果不同,看这两个字符的ascii码,如果第一个字符串的比较大,则返回1,否则返回-1;
C/C++函数,比较两个字符串。设这两个字符串为str1,str2,若str1==str2,则返回零;若str1>str2,则返回正数;若str1
<str2,则返回负数。
原型:extern int strcmp(char *s1,char * s2);
用法:#include
功能:比较字符串s1和s2。
说明:
当s1
<s2时,返回值<0
当s1=s2时,返回值=0
当s1>s2时,返回值>0
那个if(f=0)错了,应该是if(f==0)(前面那个是赋值,后面的才是判断),f是当标记用的,也就是说,如果执行if(strcmp(name,stu[k].name)==0)
这里面的东西,那就不执行if(f==0)这里面的东西
strcmp函数是string compare(字符串比较)的缩写,用于比较两个字符串并根据比较结果返回整数。基本形式为strcmp(str1,str2),若str1=str2,则返回零;若str1
str2,则返回正数。
扩展资料:
规则:
当s1
<s2时,返回为负数;
当s1=s2时,返回值= 0;
当s1>s2时,返回正数。
即:两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\0'为止。
参考资料:百度百科——strcmp
</s2时,返回为负数;
</s2时,返回值<0
</str2,则返回负数。
</s2时,返回值
C语言中的strcmp函数有什么作用,它的格式是怎样的?
一.strcmp函数
strcmp函数是比较两个字符串的大小,返回比较的结果。一般形式是:
i=strcmp(字符串,字符串);
其中,字符串1、字符串2均可为字符串常量或变量;i 是用于存放比较结果的整型变量。比较结果是这样规定的:
①字符串1小于字符串2,strcmp函数返回一个负值;
②字符串1等于字符串2,strcmp函数返回零;
③字符串1大于字符串2,strcmp函数返回一个正值;
二,strcpy函数
strcpy函数用于实现两个字符串的拷贝。一般形式是:
strcpy(字符中1,字符串2)
一般格式为strcmp(str1,str2)作用将数组1接在数组后2面,以数组1为数组名保存.
一.strcmp函数
strcmp函数是比较两个字符串的大小,返回比较的结果。一般形式是:
i=strcmp(字符串,字符串);
其中,字符串1、字符串2均可为字符串常量或变量;i 是用于存放比较结果的整型变量。比较结果是这样规定的:
①字符串1小于字符串2,strcmp函数返回一个负值;
②字符串1等于字符串2,strcmp函数返回零;
③字符串1大于字符串2,strcmp函数返回一个正值;
二,strcpy函数
strcpy函数用于实现两个字符串的拷贝。一般形式是:
strcpy(字符中1,字符串2)
C语言 strcmp
经过
char *s1="ABCDEF", *s2="aB"; s1++; s2++;这两条语句后,现在 s1 为"BCDEF",s2 为"B"。
strcmp() 函数功能如下:
strcmp(s1, s2):若 s1==s2,则返回值为零;若 s1
s2,则返回值为某个正数。
大致相当于这段代码(来源 glibc):
intSTRCMP (const char *p1, const char *p2){ const unsigned char *s1 = (const unsigned char *) p1; const unsigned char *s2 = (const unsigned char *) p2; unsigned char c1, c2; do { c1 = (unsigned char) *s1++; c2 = (unsigned char) *s2++; if (c1 == '\0') return c1 - c2; } while (c1 == c2); return c1 - c2;}在这个例子中,进入循环,首先比较第零个字符,发现'B'与'B'相等,继续比较第一个字符,'C'和 0('\0')不相等,跳出循环,最终输出结果为'C'-0=67。
在某些环境下,strcmp() 函数遇到第一个不相等字符时,若 c1>c2 始终输出 1,若 c1
<c2 始终输出 -1,若 c1="=c2" 0,所以最终输出结果为 1。
s1++; s2++;后,s1指向了"ABCDEF"中的B,s2指向了"aB"中B。strcmp比较的是两个字符串,这里就是"BCDEF"和"B",显然前者大于后者,所以输出是1而不是0。
C语言中strcmp是什么意思?有什么功能和作用?
strcmp是比较两个字符串的大小,两个字符串相同时返回0,第一个字符串大于第二个字符串时返回一个正值,否则返回负值.
比较两个字符串的算法是:逐个比较两个串中对应的字符,字符大小按照ASCII码值确定,从左向右比较,如果遇到不同字符,所遇第一对不同字符的大小关系就确定了两个字符串的大小关系,如果未遇到不同字符而某个字符串首先结束,那么这个字符串是较小的,否则两个字符串相等。
具体如下:
1、简介C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
2、基本介绍
C语言,是一种通用的、过程式的编程语言,广泛用于系统与应用软件的开发。具有高效、灵活、功能丰富、表达力强和较高的移植性等特点,在程序员中备受青睐。最近25年是使用最为广泛的编程语言。
3、运算
C语言的运算非常灵活,功能十分丰富,运算种类远多于其它程序设计语言。在表达式方面较其它程序语言更为简洁,如自加、自减、逗号运算和三目运算使表达式更为简单,但初学者往往会觉的这种表达式难读,关键原因就是对运算符和运算顺序理解不透不全。当多种不同运算组成一个运算表达式,即一个运算式中出现多种运算符时,运算的优先顺序和结合规则显得十分重要。在学习中,对此合理进行分类,找出它们与数学中所学到运算之间的不同点之后,记住这些运算也就不困难了,有些运算符在理解后更会牢记心中,将来用起来得心应手,而有些可暂时放弃不记,等用到时再记不迟。
strcmp即(String compare)字符串比较函数,用法:strcmp(字符串1,字符串2),若字符串1>字符串2 则返回1,字符串1
0, 相等返回0,小于返回 <0)自己看看MSDN 或者看看书吧,如《The C++ Programming Language》
strcmp即(String
compare)字符串比较函数,用法:strcmp(字符串1,字符串2),若字符串1>字符串2
则返回1,字符串1
<字符串2
则返回
-1,相等返回0。(MSDN上写的是大于返回
>0,
相等返回0,小于返回
<0)自己看看MSDN
或者看看书吧,如《The
C++
Programming
Language》
建议看潭浩强编的C语言的书,里面所有字符串比较,字符串粘帖什么的关键词都有
你那个是比较,第一个不同的字符的ASCLL码
好像是比较字符串大小的 函数
strcmp是比较两个字符串的大小,两个字符串相同时返回0,第一个字符串大于第二个字符串时返回一个正值,否则返回负值.
比较两个字符串的算法是:逐个比较两个串中对应的字符,字符大小按照ASCII码值确定,从左向右比较,如果遇到不同字符,所遇第一对不同字符的大小关系就确定了两个字符串的大小关系,如果未遇到不同字符而某个字符串首先结束,那么这个字符串是较小的,否则两个字符串相等。
</字符串2
字符串2>
c语言strcmp函数?
strcmp是字符串比较函数,调用形式为strcmp(字符串1,字符串2);
功能:字符串1与字符串2比较,如果字符串1==字符串2,则函数值为0,1大于2,则为正整数,1小于2,则为负整数;
从两个字符串的第一个字符开始逐个进行比较(按照ascii码
的大小进行比较),之道出现不同的字符或遇到“\0”为止。例如:char*str1=hello,*str2=void;则strcmp(str1,str2)<0;因为‘h’<'v';
c语言中strcmp是什么意思
字符串比较。根据查询计算机编程得知,strcmp是string,compare的缩写,用于比较两个字符串并根据比较结果返回整数。简称字符串比较。C语言是一门面向过程的,抽象化的通用程序设计语言,广泛应用于底层开发,C语言能以简易的方式编译,处理低级存储器。
C语言strcmp函数是什么样的代码
strcmp(s1,s2)
相同返回0
当s1
<s2时,返回值
s2时,返回值>0 即:两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\0'为止。如: "A"<"B" "a">"A" "computer">"compare" 特别注意:strcmp(s1,s2)这里面只能比较字符串,不能比较数字等其他形式的参数。
strcmp简介:
函数原型int strcmp(const char *str1,const char *str2);
其作用为
将str1的各个字母的ASCII码与str2的进行比较。
若str1>str2则返回整数,若str1=str2返回0,否则,返回负数
一般这样调用:
if(strcmp(str1,str2)==0)...
else ...
当然,这是C语言的库函数,它的代码存储在某个库文件中。
在string.h里只是一个声明。
我给你写一下,大概是这样的:
int strcmp(const char *str1,const char *str2)
{
char *str3=str1,*str4=str2;
while(*str3++!=*str4++&&(*str3||*str4))
{
if(*--str3<*--str4)
return -1;
if(*str3>*str4) return 1;
str3++;str4++;
}
return 0;
}
网页链接
page ,132
title strcmp.asm - compare two strings
;***
;strcmp.asm - routine to compare two strings (for equal, less, or greater)
;
; Copyright (c) Microsoft Corporation. All rights reserved.
;
;Purpose:
; STRCMP compares two strings and returns an integer
; to indicate whether the first is less than the second, the two are
; equal, or whether the first is greater than the second, respectively.
; Comparison is done byte by byte on an UNSIGNED basis, which is to
; say that Null (0) is less than any other character (1-255).
;
;*******************************************************************************
.xlist
include cruntime.inc
.list
page
;***
;strcmp - compare two strings, returning less than, equal to, or greater than
;
;Purpose:
; Compares two string, determining their lexical order. Unsigned
; comparison is used.
;
; Algorithm:
; int strcmp ( src , dst )
; unsigned char *src;
; unsigned char *dst;
; {
; int ret = 0 ;
;
; while( ! (ret = *src - *dst) && *dst)
; ++src, ++dst;
;
; if ( ret < 0 )
; ret = -1 ;
; else if ( ret > 0 )
; ret = 1 ;
;
; return( ret );
; }
;
;Entry:
; const char * src - string for left-hand side of comparison
; const char * dst - string for right-hand side of comparison
;
;Exit:
; AX < 0, 0, or >0, indicating whether the first string is
; Less than, Equal to, or Greater than the second string.
;
;Uses:
; CX, DX
;
;Exceptions:
;
;*******************************************************************************
CODESEG
public strcmp
strcmp proc \
str1:ptr byte, \
str2:ptr byte
OPTION PROLOGUE:NONE, EPILOGUE:NONE
.FPO ( 0, 2, 0, 0, 0, 0 )
mov edx,[esp + 4] ; edx = src
mov ecx,[esp + 8] ; ecx = dst
test edx,3
jnz short dopartial
align 4
dodwords:
mov eax,[edx]
cmp al,[ecx]
jne short donene
or al,al
jz short doneeq
cmp ah,[ecx + 1]
jne short donene
or ah,ah
jz short doneeq
shr eax,16
cmp al,[ecx + 2]
jne short donene
or al,al
jz short doneeq
cmp ah,[ecx + 3]
jne short donene
add ecx,4
add edx,4
or ah,ah
jnz short dodwords
align 4
doneeq:
xor eax,eax
ret
align 4
donene:
; The instructions below should place -1 in eax if src < dst,
; and 1 in eax if src > dst.
sbb eax,eax
sal eax,1
add eax,1
ret
align 4
dopartial:
test edx,1
jz short doword
mov al,[edx]
add edx,1
cmp al,[ecx]
jne short donene
add ecx,1
or al,al
jz short doneeq
test edx,2
jz short dodwords
align 4
doword:
mov ax,[edx]
add edx,2
cmp al,[ecx]
jne short donene
or al,al
jz short doneeq
cmp ah,[ecx + 1]
jne short donene
or ah,ah
jz short doneeq
add ecx,2
jmp short dodwords
strcmp endp
end
C语言中strcmp函数是string库的常用函数。其原型代码和介绍如下:
1.先说一下这个函数的实现原理,向strcmp()函数中传入两个字符串(记为str1,str2).传入之后,通过把str1的各字母的ASCII码值和str2的各字母的ASCII码值进行比较。若str1>str2则返回正数,若str1=str2则返回0,否则,则返回负数。
2.下面实现代码:
3.整个函数的原型中得益于“(*str1!='\0')&&(*str1==*str2)”这一句的代码,因为这样当字符指针指向空,意味着字符串已经移动到最后了,比较结束,此时可以退出循环。而如果两个字符串不相等时,则此时函数也可以退出了。
扩展资料:
这个函数要注意一下几点:
①使用*(unsigned char*)str1而不是用*str1。这是因为传入的参数为有符号数,有符号字符值的范围是-128~127,无符号字符值的范围是0~255,而字符串的ASCII没有负值,若不转化为无符号数这回在减法实现时出现错误。
②While循环中ret=*(unsigned char*)str1-*(unsigned char*)str2) && *str1,最后与上str1也可以换成str2,因为前面已经做了相减,无论哪个先为‘\0’都会退出。因为最后与上str1是为了判断str1是否结束,即是否为‘\0’。
③这个函数没有判断参数为NULL时的情况,所以当传入NULL时程序会崩溃。网上看别人说商业化代码都会在调用strcmp前先判断是否为NULL,所以可以不用判断NULL;我在VC6上测试string.h中的strcmp(NULL,NULL),程序也会崩溃。这里可以根据实际情况来决定。
参考资料来源:百度百科-strcmp函数
</s2时,返回值
C语言的strcmp是什么意思?
if( (g_token.rule_type_code, "-1") != 0)
这句是错的,修改为:
if( strcmp(g_token.rule_type_code, "-1") != 0)
strcmp函数
strcmp函数是比较两个字符串的大小,返回比较的结果。一般形式是:
i=strcmp(字符串,字符串);
其中,字符串1、字符串2均可为字符串常量或变量;i 是用于存放比较结果的整型变量。比较结果是这样规定的:
①字符串1小于字符串2,strcmp函数返回一个负值;
②字符串1等于字符串2,strcmp函数返回零;
③字符串1大于字符串2,strcmp函数返回一个正值;那么,字符中的大小是如何比较的呢?来看一个例子。
实际上,字符串的比较是比较字符串中各对字符的ASCII码。首先比较两个串的第一个字符,若不相等,则停止比较并得出大于或小于的结果;如果相等就接着 比较第二个字符然后第三个字符等等。如果两上字符串前面的字符一直相等,像"disk"和"disks" 那样, 前四个字符都一样, 然后比较第 五个字符, 前一个字符串"disk"只剩下结束符'\0',后一个字符串"disks"剩下's','\0'的ASCII码小于's'的ASCII 码,所以得出了结果。因此无论两个字符串是什么样,strcmp函数最多比较到其中一个字符串遇到结束符'\0'为止,就能得出结果。
注意:字符串是数组类型而非简单类型,不能用关系运算进行大小比较。
if("ABC">"DEF") /*错误的字符串比较*/
if(strcmp("ABC","DEF") /*正确的字符串比较*/
strcmp是比较字符串。
相同返回0.
还有其他返回值,你应该去MSDN上仔细看看
strcmp(str1,str2)函数就是比较参数中两个字符串str1 和 str2的大小(大小写敏感,即"A" != "a"),如果完全相等,返回0,如果str1 < str2(按照字母顺序比较),返回-1,如果str1 > str2,则返回1。
上面的代码都是在比较字符串sRuleGroup是否等于"PST","PPP"等,然后根据不同的比较结果作不同是事情。。。
strcmp在c语言中怎么用
strcmp在c语言中用法如下:
工具:惠普pro、windows10、C语言99。
1、打开C语言文件,在开头定义一个flower字符数组。
2、接着给出相应的提示。
3、然后使用自定义好的s_gets函数来获取输入的内容并将内容赋值给flower这个字符数组。
4、使用strcmp函数对字符数组和另外一个字符串进行对比,判断值是否为0,如果值不为0,则说明不相等,给出相应的提示。
5、如果值为0,也就说明两个字符串相等,给出对的提示。
6、最后运行程序,查看结果。
C语言编程strcmp函数的问题
如果a>b,strcmp(a,b)返回的是>0;
如果a==b,strcmp(a,b)返回的是0;
如果a
<b,strcmp(a,b)返回的是<0;
你可以方便记忆成strcmp(a,b)的结果就是a-b。a比较大的话结果自然就是>0
#include
#include
int main()
{
char str1[100],str2[100];
printf("input 2 strings: ");
scanf( "%s %s", str1,str2 ); /eg: hello world
if(strcmp(str1,str2)< 0)printf("str1
<str2");
else if(strcmp(str1,str2) > 0)printf("str1 > str2");
else
printf("str1 == str2");
printf("\n");
return 0;
}
if(strcmp(str1,str2)==0)printf("str1==str2");
strcmp()函数原型是
int strcmp(const char *s1,const char *s2)如果s1的字符串在机器编码顺序中落后于s2,函数返回值是一个大于0的整数;如果两个字符串相同的话,返回值是0;如果第一个字符串在机器编码顺序中先于第二个字符串,返回值是一个<0的数。
看函数的返回值类型是 int,那么你就可以定义一个int 值来表示,例如
int cmp=strcmp(s1,s2)cmp>0说明s2>s1;
cmp=0说明s2=s1;
cmp<0说明s2
<s1;
或者可以直接使用
if(strcmp(str1,str2))作为判断条件。
</s1;
</str2");
</b,strcmp(a,b)返回的是<0;