strcmp函数用法输入,如何用strcmp函数?
strcmp函数用法输入,如何用strcmp函数?详细介绍
本文目录一览: strcmp在c语言中怎么用
strcmp在c语言中用法如下:
工具:惠普pro、windows10、C语言99。
1、打开C语言文件,在开头定义一个flower字符数组。
2、接着给出相应的提示。
3、然后使用自定义好的s_gets函数来获取输入的内容并将内容赋值给flower这个字符数组。
4、使用strcmp函数对字符数组和另外一个字符串进行对比,判断值是否为0,如果值不为0,则说明不相等,给出相应的提示。
5、如果值为0,也就说明两个字符串相等,给出对的提示。
6、最后运行程序,查看结果。
strcmp用法
strcmp是一个在C语言中常用的字符串比较函数。它的作用是比较两个字符串是否相等,相等返回0,不相等返回非0数值。比如:```char str1[] = "hello";char str2[] = "world";if (strcmp(str1, str2) == 0) { printf("str1和str2相等");} else { printf("str1和str2不相等");}```在这个例子中,str1和str2是两个字符串变量,strcmp函数比较了这两个字符串的内容,因为它们不相等,所以输出结果是"str1和str2不相等"。 strcmp函数的实现原理是,将两个字符串的每个字符逐一比较,如果出现不同的字符则返回它们的差值(ASCII码值的差),如果两个字符串完全相等,则返回0。 在使用strcmp函数时,需要注意的是,这个函数只比较字符串中的内容,不比较字符串的长度,所以如果要比较两个字符串的长度,需要在比较之前对它们的长度进行检查。另外,如果字符串包含中文等非ASCII字符,则需要使用其他的字符串比较函数,如wcscmp、strcoll等。
strcmp函数是C标准库中的一个字符串比较函数,它可以比较两个字符串的大小。具体来说,该函数会先比较两个字符串的第一个字符,如果相同,则比较第二个字符,直到有一个字符串结束或者发现不相同的字符为止。如果两个字符串在相同的位置上有不同的字符,则返回他们的ASCII码之差,否则,返回0。该函数定义在string.h头文件中,函数原型为:int strcmp(const char* str1,const char* str2); 。其中,str1和str2分别表示两个要比较的字符串。函数返回值是一个整数,如果str1等于str2,则返回0;如果str1小于str2,则返回一个负数;如果str1大于str2,则返回一个正数。
strcmp是C语言中的一个字符串比较函数,用于比较两个字符串的大小关系。strcmp函数的用法如下:
```c
int strcmp(const char *str1, const char *str2);
```
该函数接受两个参数,分别是要比较的两个字符串str1和str2。函数返回一个整数值,表示两个字符串的大小关系,其取值如下:
- 当 str1 小于 str2 时,返回一个负整数;
- 当 str1 等于 str2 时,返回 0;
- 当 str1 大于 str2 时,返回一个正整数。
比较时,strcmp函数会按照ASCII码表中的顺序依次比较两个字符串中的每个字符,直到出现不同的字符或者其中一个字符串结束。如果两个字符串完全相同,则返回0。如果用于比较的字符串无法确定大小关系(例如其中一个是空指针或空字符串),则返回不确定的结果。
下面是一个使用strcmp函数比较两个字符串的示例代码:
```c
#include
#include
int main() {
char str1[] = "hello";
char str2[] = "world";
int result = strcmp(str1, str2);
if (result < 0) {
printf("str1 is less than str2
");
} else if (result == 0) {
printf("str1 is equal to str2
");
} else {
printf("str1 is greater than str2
");
}
return 0;
}
```
该示例代码先定义了两个字符串str1和str2,然后调用strcmp函数对其进行比较,最后根据比较结果输出不同的提示信息。
strcmp函数的用法是怎样?
函数简介\x0d\x0a原型:extern int strcmp(const char *s1,const char * s2);\x0d\x0a所在头文件:string.h\x0d\x0a功能:比较字符串s1和s2。\x0d\x0a一般形式:strcmp(字符串1,字符串2)\x0d\x0a说明:\x0d\x0a当s1s2时,返回正数 注意不是1\x0d\x0a注:c++ 中\x0d\x0a当s1s2时,返回正数 注意不是1\x0d\x0a即:两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\0'为止。如:\x0d\x0a"A""A" "computer">"compare"\x0d\x0a特别注意:strcmp(const char *s1,const char * s2)这里面只能比较字符串,不能比较数字等其他形式的参数。\x0d\x0a一例实现代码:\x0d\x0a\x0d\x0a#include \x0d\x0a#include \x0d\x0a#undef strcmp\x0d\x0aint strcmp (p1, p2)\x0d\x0a{\x0d\x0a const char *p1;\x0d\x0a const char *p2;\x0d\x0a {\x0d\x0a register const unsigned char *s1 = (const unsigned char *) p1;\x0d\x0a register const unsigned char *s2 = (const unsigned char *) p2;\x0d\x0a unsigned reg_char c1, c2;\x0d\x0a do{\x0d\x0a c1 = (unsigned char) *s1++;\x0d\x0a c2 = (unsigned char) *s2++;\x0d\x0a if (c1 == '\0')\x0d\x0a return c1 - c2;\x0d\x0a }while (c1 == c2);\x0d\x0a return c1 - c2;\x0d\x0a}\x0d\x0alibc_hidden_builtin_def (strcmp)\x0d\x0a \x0d\x0ac的实现方式:\x0d\x0aint mystrcmp(const char*s1,const char*s2){\x0d\x0a while(*s1!=0&&*s2!=0&&*s1==*s2){\x0d\x0a s1++;\x0d\x0a s2++;\x0d\x0a } \x0d\x0a return *s1-*s2;\x0d\x0a}\x0d\x0a\x0d\x0a2函数源码\x0d\x0aint strcmp(const char *str1, const char *str2){ while (*str1==*str2) { if(*str1=='\0') return 0; str1++; str2++; } return *str1-*str2;}\x0d\x0a应用举例举例1\x0d\x0a(在VC6.0中运行通过)\x0d\x0a\x0d\x0a#include\x0d\x0a#include\x0d\x0avoid main()\x0d\x0a{\x0d\x0a char string[20];\x0d\x0a char str[3][20];\x0d\x0a int i;\x0d\x0a for(i=0;i0)\x0d\x0a strcpy(string,str[0]);\x0d\x0a else\x0d\x0a strcpy(string,str[1]);\x0d\x0a if(strcmp(str[2],string)>0)\x0d\x0a strcpy(string,str[2]);\x0d\x0a printf("\nThe largest string is %s\n",string);\x0d\x0a}\x0d\x0a \x0d\x0a说明\x0d\x0aintstrcmp( string$str1 , string$str2 )\x0d\x0a注意该比较区分大小写。\x0d\x0a参数\x0d\x0astr1第一个字符串。\x0d\x0astr2第二个字符串。\x0d\x0a返回值\x0d\x0a如果 str1小于 str2,返回负数;如果 str1大于 str2,返回正数;二者相等则返回 0。(相等时返回0)
strcmp()函数的用法是什么?
strcmp函数用于两个字符串的比较,具体用法如下:
1、strcmp函数接受两个字符串类型的参数传入,根据比较结果返回一个int类型的值。
2、若返回结果的值小于 0,则表示在ASCII码上, str1字符串 小于 str2字符串。
3、若返回结果返回值 大于0,则代表 str2字符串 小于 str1字符串。
4、只有当返回值 为0时,两个字符串才是相同的。
扩展资料:
该函数只能用于比较字符串,不能比较数字等其他形式的参数,否则会报错。
根据ANSI的标准,函数的返回值为正数,负数,0 。不同的C返回的数值会有所不同。当两个字符串不相等时,C的标准没有规定返回值会是 1 或 -1,只规定了正数和负数。
通常情况下,会将两个字符的 ASCII 码之差作为比较结果由函数值返回。因此使用函数进行逻辑判断时应特别注意。
参考资料:
strcmp-百度百科
strcmp()函数怎么用?
首先,要用这个函数,需要预包含头文件
,其次、这是两个字符串比较函数其原型为:int strcmp(char *str1, char *str2);当str1>str2时,返回一个正数;当str1
<str2时,返回一个负数;当str1=str2时,返回0。最后应该注意的是:两个字符串比较时,是按asiic码大小逐个比较的,当发现某一个大或者小时,就停止比较、返回一个值。否则比较到最后一个字母。
此函数用于比较两个字符串是否相同。返回值为0,表示两个字符串是相同的。
下面是msdn中的例子
char string1[] = "The quick brown dog jumps over the lazy fox";
char string2[] = "The QUICK brown dog jumps over the lazy fox";
int result = strcmp( string1, string2 );
if ( result == 0 )
{
// string1与string2相同
}
字符串对比函数,
定义两个字符串,
char s1[]="ndajsj",s2[]="sbnu";
用该函数对比,strcmp(s1,s2);当s1,s2完全一样时返回值为零,其他不为零,详细参照书籍或者百度百科,
也可以这样用
strcmp("snada","dnd");是两个字符串直接对比,
strcmp(s1,s2)是字符串比较函数,比较规则是俩个字符串自左向右逐个字符相比(按ASCII码值大小),以第一个不相同的大小作为比较结果。
当s1等于s2时,返回0;
当s1大于s2时,为正整数;
当s1小于s2时,为负整数。
int
strcmp(const
char
*s1,const
char
*
s2);
所在头文件:string.h
功能:比较字符串s1和s2。
一般形式:strcmp(字符串1,字符串2)
说明:
当s1
<s2时,返回值<0
当s1==s2时,返回值=0
当s1>s2时,返回值>0
即:两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\0'为止。
字符串比较函数,一般形式为strcmp(字符串1,字符串2)。
比较规则:
对两个字符串自左至右逐个字符相比(按ASCII码值大小比较),直到出现不同的字符或遇到‘\0’为止。如果全部字符相同,则认为相等;若出现不相同的字符,则以第一个不相同的字符的比较结果为准。
如果两个字符串都由英文字母组成,则有一个简单的规律:在英文字典中位置在后面的为“大”,还要特别注意:小写字母比大写字母“大”。
返回值:
(1)字符串1=字符串2,返回0
(2)字符串1>字符串2,返回一个正整数
(3)字符串1
<字符串2,返回一个负整数。
扩展资料:
规则
当s1
<s2时,返回为负数;
当s1==s2时,返回值= 0;
当s1>s2时,返回正数。
即:两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\0'为止。如:
"A"<"B" "a">"A" "computer">"compare"
特别注意:strcmp(const char *s1,const char * s2)这里面只能比较字符串,即可用于比较两个字符串常量,或比较数组和字符串常量,不能比较数字等其他形式的参数。
ANSI标准规定,返回值为正数,负数,0 。而确切数值是依赖不同的C实现的。
Return Value
Returns an integral value indicating the relationship between the strings:
return value<0 the first character that does not match has a lower value inptr1than inptr2
return value=0 the contents of both strings are equal
return value>0 the first character that does not match has a greater value inptr1than inptr2
当两个字符串不相等时,C标准没有规定返回值会是1 或 -1,只规定了正数和负数。有些实现会返回1或-1,但将返回值与1或-1做比较的人,都是不合格的程序员。
有些会把两个字符的ASCII码之差作为比较结果由函数值返回。但无论如何不能以此条依据作为程序中的流程逻辑。
参考资料:百度百科-strcmp
</s2时,返回为负数;
</字符串2,返回一个负整数。
</s2时,返回值<0
</str2时,返回一个负数;当str1=str2时,返回0。最后应该注意的是:两个字符串比较时,是按asiic码大小逐个比较的,当发现某一个大或者小时,就停止比较、返回一个值。否则比较到最后一个字母。
strcmp的用法
原型: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"
特别注意:strcmp(const
char
*s1,const
char
*
s2)这里面只能比较字符串,不能比较数字等其他形式的参数。
编辑本段应用举例
举例1:(在VC6.0中运行通过)
#include
#include
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
#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;
}
strcmp(char
*str1
,char
*str2);
用来比较两个字符串
当str1
<str2时,返回值<0
当str1=str2时,返回值=0
当str1>str2时,返回值>0
包含于头文件
调用得加上该头文件
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
#include
#include
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的.
结果是1
abcd和abc前三个字母相同,比较'd'和‘\0'的大小,'d'的ASCII码为100,'\0'的ASCII码为0,当然前者大
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
</str2时,返回一个负数
</str2时,返回值<0
</s2时,返回值<0
C语言中strcmp函数怎么用啊
int a=strcmp(b,c)
判断b,c是否相等
若相等a=0
不相等a=正数或负数
比较两个字符串呀
strcmp(char* XXX , char* XXX)
通常用来看两个字符串相同不
if(0 == strcmp(XXX , XXX))
{
......
}
[C语言] 关于strcmp函数的用法。万分感谢!
这样吧,我简单给你说一下你应该就能懂了
"computer">"compare"中computer的第一个字母(c)和compare中的第一个字母(c)比较,如果对应的ASCII相同的话就进行第二个字母的比较,这样依次下去知道比较到不同的或是比较完为止。
而“dbase” “C Language”中第一个字母就不相同了,d对应的ASCII为100,而C对应的ASCII为67,然后就直接停止比较了,所以结果为“dbase”>“C Language”,现在知道了吧
strcmp的函数代码实现模拟为如下:
#include
int
strcmp(char
*str1,char*str2)
{
char
*
p1=str1,
*p2=str2;
while(*p1
&&
*p2)
{
if(*p1>*p2)
{
return
1;
}
else
if(*p1<*p2)
{
return
-1;
}
p1++;
p2++;
}
if(*p1==0
&&
*p2==0)
{
return
0;
}
else
if(*p1==0
&&
*p2!=0)
{
return
-1;
}
else
{
return
1;
}
}
void
main()
{
printf("%d\n",strcmp("hello1","hello"));
printf("%d\n",strcmp("computer","compare"));
printf("%d\n",strcmp("dbase","C
Language"));
}
请自己看代码,也简单。
第一个前面都相等, 比到第5个字符的时候u > a 所以前一个字符串大于后一个
第二个比到第一个字符 d > C 所以前一个比较大
strcmp的函数代码实现模拟为如下:
#include
int strcmp(char *str1,char*str2)
{
char * p1=str1, *p2=str2;
while(*p1 && *p2)
{
if(*p1>*p2)
{
return 1;
}
else if(*p1<*p2)
{
return -1;
}
p1++;
p2++;
}
if(*p1==0 && *p2==0)
{
return 0;
}
else if(*p1==0 && *p2!=0)
{
return -1;
}
else
{
return 1;
}
}
void main()
{
printf("%d\n",strcmp("hello1","hello"));
printf("%d\n",strcmp("computer","compare"));
printf("%d\n",strcmp("dbase","C Language"));
}
请自己看代码,也简单。
1:首先,比较字符c,相同,在比较o,还相同...比较u与a,不同!u的ASC码比a大,立即返回,返回一个正数,后面的就没有必要再比较了
2:道理相同,d的ASC比C大,所以立即返回
明白了没?
strcmp的原型是int strcmp(const char *s1, const char *s2),s1、s2都被const修饰,可见函数体中对两个字符串进行只读操作。
比较从左至右按字符一一对应进行,遇到不等时得出结果,停止操作;无论哪个字符串先到达'\0','\0'也参与比较。
当s1的某个字符的ASCII值>s2对应字符的ASCII值时,函数返回+1,反之返回-1,当s1、s2完全一样(等长,对应字符相同)时返回0。
举例代码如下:
//#include "stdafx.h"//If the vc++6.0, with this line.#include "stdio.h"#include "string.h"int main(void){ char *s1="12345fjksld;ajfkl;",*s2="12a",*s3="12a"; printf("s1<-->s2: %d\n",strcmp(s1,s2));//输出-1,说明大小不由长度确定 printf("s2<-->s3: %d\n",strcmp(s2,s3));//长度和字符对应相等是才输出0 printf("s2<-->s1: %d\n",strcmp(s2,s1));//是参数1与参数2对比而不是相反 printf("\n"); return 0;}
如何用strcmp函数?
strcmp的作用是比较字符串1和字符串2的长度大小的
例如:strcmp(str1,str2);
strcmp("sdkfj″,″Kfnksdj″);
比较的结果由函数值带回
(1) 如果字符串1=字符串2,函数值为0。
(2) 如果字符串1>字符串2,函数值为一正整数。
(3) 如果字符串1
<字符串2,函数值为一负整数。
strcmp(s1,s2)就这样 就是比较s1与s2长度大小
比较2个字符串的大小……
s1=s2,strcmp(s1,s2) == 0;
s1>s2, strcmp(s1,s2) == 1;
s1
<s2, strcmp(s1,s2)="=" -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″);
</字符串2,函数值为一负整数。
</字符串2,函数值为一负整数。