strcmp(a,C语言这段strcmp代码是什么意思
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;}
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的两个输入是高维字符数组,会当成一个字符串比较。