c语言中strcmp的用法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言中strcmp的用法相关的知识,希望对你有一定的参考价值。

strcmp是比较两个字符串的大小,两个字符串相同时返回0,第一个字符串大于第二个字符串时返回一个正值,否则返回负值。

比较两个字符串的算法是:逐个比较两个串中对应的字符,字符大小按照ASCII码值确定,从左向右比较,如果遇到不同字符,所遇第一对不同字符的大小关系就确定了两个字符串的大小关系,如果未遇到不同字符而某个字符串首先结束,那么这个字符串是较小的,否则两个字符串相等。

扩展资料:

C语言主要有以下特点:

1、C语言在很多方面都可以用,不仅仅是在软件开发上,各类科研都是需要用到C语言的。具体应用比如我是学硬件的,单片机以及嵌入式系统都可以用C来开发。

2、C是结构式语言结构式语言的显著特点是代码及数据的分隔化, 即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰, 便于使用、维护以及调试。

C 语言是以函数形式提供给用户的, 这些函数可方便的调用, 并具有多种循环、条件语句控制程序流向, 从而使程序完全结构化。

3、C语言功能齐全C 语言具有各种各样的数据类型, 并引入了指针概念, 可使程序效率更高。另外C 语言也具有强大的图形功能, 支持多种显示器和驱动器。

而且计算功能、逻辑判断功能也比较强大, 可以实现决策目的编游戏,编3D游戏,做数据库,做联众世界,做聊天室,做PHOTOSHOP做FLASH,做3DMAX。

参考技术A int strcmp(char *str1, char *str2);

比较字符串str1和str2是否相同。如果相同则返回0;
如果不同,在不同的字符处如果str1的字符大于str2的字符,则返回1,否则返回-1
比如:
char a[]="abcd";
char *b="abcd";
char *d="abcde";
int d=strcmp(a,b); //那么d的值是0
d=strcmp(b,d); //d的值是-1 因为 '\0' 比'e' 小
d=strcmp(d,b); //d的值是1,因为 'e' 比'\0'大
参考技术B 把字符看成ASII的值 , 和数字比较大小一般,
if( strcmp(A,B) > 0 ) 串A > 串B
if( strcmp(A,B) == 0 ) 相同的串
if(strcmp(A,B) < 0 ) 串A < 串B
参考技术C 把字符看成ASII的值 , 和数字比较大小一般, if( strcmp(A,B) > 0 ) 串A > 串B if( strcmp(A,B) == 0 ) 相同的串 if(strcmp(A,B) < 0 ) 串A < 串B

strcmp的用法

要是比较“abcd"与”abc",的大少,结果是多小啊 ?
DATA SEGMENT
DATABUF DB 0H,1H,4H,9H,10H,19H,24H,31H,40H,51H
DATA ENDS
CODE SEGMENT
ASSUME CS :CODE,DS:DATA,SS:STACK
BEGIN :
MOV AH , 1
INT 21H
MOV SI , AL
SUM SI , AL
MOV DL , DATABUF [SI]
MOV AH , 2
INT 21H
MOV DL , 0A
MOV AH , 2
INT 21H
CODE ENDS
END START ; 汇编的代码,麻烦帮我看哈,哪错啦,改过来我给50分你!

strcmp(str1,str2)
是字符串比较函数

其作用是:
当str1=str2时,返回0
当str1>str2时,返回一个正数
当str1<str2时,返回一个负数

如何判断str1和str2的大小呢?这里C++系统是用吧str1和str2逐位进行比较,即将每一位按照其ASCII值进行一个str1到str2的减法,当出现第一个不相等的位的时候,就返回计算结果

所以abcd与abc的大小比较,strcmp("abcd","abc")最后会返回一个正数,这个数是c的ASCII值,而不是1
参考技术A 原型:extern
int
strcmp(const
char
*s1,const
char
*
s2);
用法:#include
<string.h>
功能:比较字符串s1和s2。
说明:
当s1<s2时,返回值<0
当s1=s2时,返回值=0
当s1>s2时,返回值>0
即:两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\0'为止。如:
"A"<"B"
"a">"A"
"computer">"compare"
特别注意:strcmp(const
char
*s1,const
char
*
s2)这里面只能比较字符串,不能比较数字等其他形式的参数。
编辑本段应用举例
举例1:(在VC6.0中运行通过)
#include<stdio.h>
#include<string.h>
void
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);

举例2:(TC中运行通过)
//
strcmp.c
#include
<syslib.h>
#include
<string.h>
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;
参考技术B strcmp(char
*str1
,char
*str2);
用来比较两个字符串
当str1<str2时,返回值<0
当str1=str2时,返回值=0
当str1>str2时,返回值>0
包含于头文件<string.h>
调用得加上该头文件
参考技术C strcmp(str1,str2)
是字符串比较函数
其作用是:
当str1=str2时,返回0
当str1>str2时,返回一个正数
当str1<str2时,返回一个负数
如何判断str1和str2的大小呢?这里C++系统是用吧str1和str2逐位进行比较,即将每一位按照其ASCII值进行一个str1到str2的减法,当出现第一个不相等的位的时候,就返回计算结果
所以abcd与abc的大小比较,strcmp("abcd","abc")最后会返回一个正数,这个数是c的ASCII值,而不是1
参考技术D #include <stdio.h>
#include <string.h>
void main()

int a;
a =(int) strcmp("abcd","abc");
printf("a=%d\n",a);

以上程序在tc2.0下调试通过,结果是a=100 即'd'的asc2码值减去'\0'的asc2码值,就是100-0=100.
二楼正确!但是是d的asc2码值而不是c的.

以上是关于c语言中strcmp的用法的主要内容,如果未能解决你的问题,请参考以下文章

c语言 fwrite问题

c语言中r+的详细用法用法

c语言中fread的用法

c语言strcpy()用法

c语言string的用法大全

c语言parent用法