百度
360搜索
搜狗搜索

strcmp(a,C语言这段strcmp代码是什么意思详细介绍

本文目录一览: strcmp函数怎么用?

strcmp函数用法:
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

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

请问C++中 if(!strcmp(A,B)) 中的!strcmp代表什么意思

strcmp(s1,s2)为字符串比较函数,比较的是从字符串的第一个字符开始比较他的ASCLL码值,跟字符串的长度无关。
当s1 > s2 时,返回值 > 0
当s1 = s2 时,返回值 = 0
当s1 < s2时,返回值 < 0
! 为逻辑非运算符,即当值为真时改成假,值为加时改成真
在程序设计的判断真假中0为假,非0为真
所以在if(!srcmp(A,B))这个语句中我们可以将A和B的关系设为两种,一种是A==B,另一种是A!=B
当A==B时:strcmp(A,B)为0,!strcmp(A,B)为非0
if判断为真
当A!=B时:strcmp(A,B)为非0,!strcmp(A,B)为0
if判断为假
strcmp是一个函数,表示字符串比较(字典序),该函数返回
<0 如果字符串A在B之前
=0 如果A和B相等
>0 如果A在B之后
if(!strcmp(A,B))等价于if(strcmp(A,B)==0),即若A,B两字符串相等。
希望这个答案对你有用
! -- 逻辑非运算符。
strcmp(A,B) -- 字符串比较函数。当 A字符串和 B字符串 一样时,函数返回 0。
逻辑运算中,0为假,非0 为真。
!假 得真。!真 得假。
if(!strcmp(A,B)){。。。。}else{...};
当 A字符串和 B字符串 一样时 ,函数返回 0,也就是 假,!假 得真,
所以
当 A字符串和 B字符串 一样时, 执行 {。。。。},
不一样时 执行else{...};
当s1
<s2时,返回值<0
当s1=s2时,返回值=0

当s1>s2时,返回值>0

所以,当A和B相等时strcmp(A,B)返回0,那么!strcmp(A,B)就是1了,

也就是说,当A和B相等的时候运行if下面的语句,如果A和B不等,不运行if下面的语句

字符串函数- strcmp

原型:extern int strcmp(char *s1,char * s2);

用法:#include

功能:比较字符串s1和s2。

说明:

当s1
<s2时,返回值<0
当s1=s2时,返回值=0

当s1>s2时,返回值>0

举例:

// strcmp.c

#include

#include

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;

}

strcmp(s1,s2)为字符串比较函数,比较的是从字符串的第一个字符开始比较他的ASCLL码值,跟字符串的长度无关。

当s1 > s2 时,返回值 > 0

当s1 = s2 时,返回值 = 0

当s1 < s2时,返回值 < 0

! 为逻辑非运算符,即当值为真时改成假,值为加时改成真

在程序设计的判断真假中0为假,非0为真

扩展资料:

strcmp规则

两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\0'为止。如:

1."A"<"B" 2."A"<"AB" 3."Apple"<"Banana" 4."A"<"a" 5."compare"<"computer"

特别注意:strcmp(const char *s1,const char * s2)这里面只能比较字符串,不能比较数字等其他形式的参数。

参考资料来源:百度百科-strcmp

</s2时,返回值<0

</s2时,返回值<0

strcmp(a,b),比较时是否要求两个字符串的长度相等??

strcmp 与 strncmp 两个都是比较函数,但是都不需要规定两个字符串的长度。
strcmp 函数的使用时取字符串a , b然后依次从第一个字符开始比较,直到出现不同,然后在判断是否其大小。你可以看下下面的程序:
#include

#include

#define MAX 100int main(){ char str1[MAX]; char str2[MAX] = "123456789"; printf("please enter a string:"); scanf("%99[^\n]", str1); printf("str1 : %s\n", str1); printf("str2 : %s\n", str2); printf("%d\n", strcmp(str1, str2)); //相同返回0,如果str1比str2大则返回1,反之返回-1,比较是按照ASCII来的 return 0;}

阅读更多 >>>  sprintf的头文件,sprintf 头文件

8.33 C语言,strcmp(a,b))0是什么意思

a字符串等于b字符串则返回0
a字符串元素的ascll码大于b字符串对应的元素则返回大于0,反之返回小于0.
功能:比较字符串s1和s2。
一般形式:strcmp(字符串1,字符串2)
说明:
当a
<b时,返回值<0
当a==b时,返回值=0

当a>b时,返回值>0

字符串a大于b的时候:strcmp(a,b)>0

恩,楼上回答的都对。

单个比较字符串a,b的第一个字符,逐次比较下去,直到找到大小界限,或者一方字符串结束了,则结束的那个是小的一方.

具体比较判定是ASCII码值的大小,strcmp(a,b)>0表示a的字符串从前往后比较,某个字符比b的ASCII值大,或者b的字符串只是a的一部分,b结束了,a还有字符串(b和a前面长度为sizeof(b)的每个单个字符都一样的情况下)

1.情况 a: abcd b:abdc a的第三个字符比b大了,之后就不比较了,得strcmp(a,b)>0

2.情况 a:abcdef b:abcde a和b比较了到e,而b字符串没了,a还没结束 则strcmp(a,b)>0.
</b时,返回值<0

如何利用strcmp函数比较两个字符串是否相同?

strcmp比较2个以'\0'结束的字符串是否相同的。
你将a[100],b[100]结束后增加一个字符'\0'。
就可以用strcmp(a,b)==0来判断字符串是否相同了。
如:
char a[100],b[100];
int i;
i=0;
while(scanf("%c",&a[i]),a[i] !='x');
a[i] = '\0';
i=0;
while(scanf("%c",&b[i]),b[i] !='x');
b[i] = '\0';
if(strcmp(a,b)==0)
printf("字符串相同");
else
printf("字符串不同");

C语言这段strcmp代码是什么意思

char a[20], b[20];
strcmp(a,b)是比较ab两个字符串的大小
如果strcmp(a,b)==0,说明ab字符串相等
如果strcmp(a,b)>0,说明a字符串大于b字符串,也就是a的字母顺序应该在b后面
----比如"abcd">"aabc", "bcde">"abcd"
如果strcmp(a,b)<0,说明a字符串小于b字符串,也就是a的字母顺序应该在b前面

strcmp(a,b) c语言 比较字符串的大小!

char a[[10] = "apple";
char b[10] = "orange";
char c[10] = "apple";
int result;
result = strcmp(a, b); // 结果为不为0,即不同。
result = strcmp(a, c); //结果为0,即相同
#include

#include

#include

...

int valid_change;

struct passwd *p;

char user[100];

char oldpasswd[100];

char newpasswd[100];

char savepasswd[100];

...

if (strcmp(p->pw_name, user) == 0) {//相同则为0 不同则为差值

if (strcmp(p->pw_passwd, crypt(oldpasswd, p->pw_passwd)) == 0) {

strcpy(savepasswd, crypt(newpasswd, user));

p->pw_passwd = savepasswd;

valid_change = 1;

}

else {

fprintf(stderr, "Old password is not valid\n");

}

}

...

#include

#include

int main()

{

char *name = "haha";

char destname = "hahe";

if (strcmp(name,destname)==0)

{

printf("Equal!");

}

else if(strcmp(name,destname)>0)

{

printf("%s>%ds\n",name , destname);

}

else

{

printf("%s<%s\n",name,destname);

}

return 0;

}

这个函数用以比较a b两个字符串的大小,先比两个字符串第一个字符的大小,若相等则比较第二个,以此类推,直到比出较大的那个。若两者相等,则表达式的值为零,若a大于b,则值为正,否则为负。

strcmp(a,1234)=0 和 strcmp(英文,汉字)=1 请问是怎么比较出来的呢 ??希望说的详细一点

strcmp函数
其一般形式为:strcmp(字符串1,字符串2)
strcmp的作用是比较字符串1和字符串2。
例如:strcmp(str1,str2);
strcmp(″China″,″Korea″);
strcmp(str1,″Beijing″);
比较的结果由函数值带回
(1) 如果字符串1=字符串2,函数值为0。
(2) 如果字符串1>字符串2,函数值为一正整数。
(3) 如果字符串1
<字符串2,函数值为一负整数。
注意:对两个字符串比较,不能用以下形式:

if(str1>str2) printf(″yes″);

而只能用

if(strcmp(str1,str2)>0) printf(″yes″);-------------------------------------------------------string a=???strcmp(a,"1234")=0 说明a=“1234” 英的ascii码值-33521 文的ascii码值-25991汉的ascii码值-27721 字的ascii码值-23383由此比较 可得 strcmp("英文","汉字")=1
</字符串2,函数值为一负整数。

matlab 比较字符串是否相等

strcmp比较的是字符串,a和b是cell型,所以用小括号a(2,:)这样是不行的,况且这个cell字符串是个1*2大小的,不用考虑几行几列,直接取第几个就可以了,只需把小括号改成大括号{}就可以了即strcmp(a{2},b{2})。
利用strcmp函数,如果字符相同返回真,字符不同返回假。
比如:
A='abc';
B='abc';
strcmp(A,B)
这个时候返回1,就是真。
扩展资料:
字符一般采用国际上通用的ASCII字符集。每一个字符在计算机内部由8位二进制代码表示。BASIC规定,两个单字符的比较,就是对它们的代码值进行比较。
例如:在ASCII字符表中,”A”的代码值是65(十进制数),”B”的代码值是66(十进制数),所以”A”小于”B”。当运算”A”<”B,,时,结果为真;当运算”A”一”B”时,结果为假。
参考资料来源:百度百科-字符比较
strcmp比较的是字符串,a和b是cell型,所以用小括号a(2,:)这样是不行的,况且这个cell字符串是个1*2大小的,不用考虑几行几列,直接取第几个就可以了,只需把小括号改成大括号{}就可以了即strcmp(a{2},b{2})。
matlab中的字符串数组的用法
如何创建字符串数组。并且判断一下字符串数组的类型。需要注意的是字符串数组的创建方式是:在指令窗中,先把待建的字符放在“单引号对”中,再按[Enter]键,此外“单引号对’必须在英文状态下输入。
创建一个数值数组来进行比较。下面我们就创建一个数值数组,同样查看该数组的数据类型。
用“who”指令来观察一下字符串与数值数组的主要区别:从图中我们可以看出字符串数组的类型是“char”型,而数值数组的类型为“double”型,而且在创建字符串数组时,必须用在英文状态下输入的单引号对讲字符串包括在内,他是matlab识别送来内容身份(是变量名、数字、还是字符串)所必需的。
strcmp比较的是字符串,你的a和b是cell型,所以用小括号a(2,:)这样是不行的,况且这个cell字符串是个1*2大小的,不用考虑几行几列,直接取第几个就可以了,只需把小括号改成大括号{}就可以了即strcmp(a{2},b{2})
strcmp比较的是字符串,a和b是cell型,所以用小括号a(2,:)这样是不行的,况且这个cell字符串dao是个1*2大小的,不用考虑几行几列,直接取第几个就可以了,只需把小括号改成大括号{}就可以了即strcmp(a{2},b{2})。
扩展资料:
matlab比较字符串:
1、strcmp函数有两个参数,最基本的,可以是两个字符串。如果两个字符串完全相同,返回逻辑1,否则返回逻辑0。
2、strcmp的两个参数也可以一个是字符串,另一个是元胞数组(多个字符串)。返回一个逻辑值数组,其中每项是元胞数组中的每个字符串与单独字符串的比较结果。
3、strcmp函数的两个参数也可以是相同尺寸的元胞数组,返回值是对应字符串的比较结果。
如果不是以上三种情况,比如两个不同尺寸的元胞数组,就会失败。另外要注意的是,如果strcmp的两个输入是高维字符数组,会当成一个字符串比较。

网站数据信息

"strcmp(a,C语言这段strcmp代码是什么意思"浏览人数已经达到19次,如你需要查询该站的相关权重信息,可以点击进入"Chinaz数据" 查询。更多网站价值评估因素如:strcmp(a,C语言这段strcmp代码是什么意思的访问速度、搜索引擎收录以及索引量、用户体验等。 要评估一个站的价值,最主要还是需要根据您自身的需求,如网站IP、PV、跳出率等!