strcmp的用法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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分你!
是字符串比较函数
其作用是:
当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的.
strcmp函数怎么用?
参考技术Astrcmp函数用法:
strcmp() 用来比较字符串(区分大小写),其原型为:int strcmp(const char *s1, const char *s2);s1, s2 为需要比较的两个字符串。
字符串大小的比较是以ASCII
码表上的顺序来决定,此顺序亦为字符的值。strcmp()首先将s1 第一个字符值减去s2 第一个字符值,若差值为0
则再继续比较下个字符,若差值不为0 则将差值返回。例如字符串"Ac"和"ba"比较则会返回字符"A"(65)和'b'(98)的差值(-33)。
举例:
#include <string.h>
main()
char *a = "aBcDeF";
char *b = "AbCdEf";
char *c = "aacdef";
char *d = "aBcDeF";
printf("strcmp(a, b) : %d\\n", strcmp(a, b));
printf("strcmp(a, c) : %d\\n", strcmp(a, c));
printf("strcmp(a, d) : %d\\n", strcmp(a, d));
输出结果:
strcmp(a, b) : 32
strcmp(a, c) :-31
strcmp(a, d) : 0
扩展资料:
strcmp使用规则:
一、当两个字符串不相等时,C标准没有规定返回值会是1 或 -1,只规定了正数和负数。有些实现会返回1或-1,但将返回值与1或-1做比较的人,都是不合格的程序。
二、有些会把两个字符的ASCII码之差作为比较结果由函数值返回。但无论如何不能以此条依据作为程序中的流程逻辑。
参考资料来源:百度百科—strcmp
以上是关于strcmp的用法的主要内容,如果未能解决你的问题,请参考以下文章