C语言中:strcmp函数如何使用?

Posted

tags:

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

我要比较字符a 与k的大小,想用这个strcmp函数来实现,具体的语句是怎么写呢?

  原型:extern int strcmp(const char *s1,const char * s2);
  用法:#include <string.h>
  功能:比较字符串s1和s2。
  相关函数:wcscmp
  一般形式:strcmp(字符串1,字符串2)
  说明:
  当s1<s2时,返回值<0
  当s1=s2时,返回值=0
  当s1>s2时,返回值>0
  即:两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\0'为止。如:
  "A"<"B" "a">"A" "computer">"compare"
  特别注意:strcmp(const char *s1,const char * s2)这里面只能比较字符串,不能比较数字等其他形式的参数。
参考技术A #include <stdio.h>
#include <string.h>

int main()

char ch1[2] = "a";
char ch2[2] = "k";

int result = strcmp(ch1, ch2);

if( result > 0 )

printf("a要大\n");

else if( result < 0 )

printf("k要大\n");

else

printf("相等\n");


return 0;


单个字符的话其实可以直接比较,strcmp是比较字符串的,返回值是他们的差值,如果等于0说明相等。其他可以参考百科或MSDN
参考技术B 函数原型:extern int strcmp(const char *s1,const char *s2);
函数功能:以ascii码值比较两个字符串的大小,当s1<s2时,返回为负数,当s1=s2时,返回值= 0,当s1>s2时,返回正数。
头文件:#include <string.h>
参数说明:两个比较字符串的首地址指针。
注意事项:strcmp(const char *s1,const char * s2)这里面只能比较字符串,即可用于比较两个字符串常量,或比较数组和字符串常量,不能比较数字等其他形式的参数。
参考技术C 就是对两个字符串从左到右逐个字符相比,按ASCII值大小比较,如果出现不同字符或遇到'\0'为止,如果全部字符相等;则认为相等,如果不相等的,按第一个不相等的字符的比较结果为准,
如strmp(str,str),则函数值为0,如果strmp(stra,strb)因为a的askii小于b的,所以函数值为一个负数。
参考技术D strcmp简介:
函数原型int strcmp(const char *str1,const char *str2);
其作用为
将str1的各个字母的ASCII码与str2的进行比较。
若str1>str2则返回整数,若str1=str2返回0,否则,返回负数
一般这样调用:
if(strcmp(str1,str2)==0)...
else ...
当然,这是C语言的库函数,它的代码存储在某个库文件中。
在string.h里只是一个声明。
我给你写一下,大概是这样的:
int strcmp(const char *str1,const char *str2)

char *str3=str1,*str4=str2;
while(*str3++!=*str4++&&(*str3||*str4))

if(*--str3<*--str4)
return -1;
if(*str3>*str4) return 1;
str3++;str4++;

return 0;

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

以上是关于C语言中:strcmp函数如何使用?的主要内容,如果未能解决你的问题,请参考以下文章

c语言中如何像用函数strcpy复制字符串一样复制数字,如复制30。

C语言中在定义了一个结构体,里面有char num[15],请问如何比较里面的内容?

C语言问题。。。strcmp怎么运用啊?

如何在函数中使用 strcmp() 时修复预期的“const char *”但参数的类型为“char **”

c语言中strcmp的用法

c语言字符数组如何比较?