百度
360搜索
搜狗搜索

strcmp怎么比较字符串大小,c语言的strcmp函数怎么比较字符串?详细介绍

本文目录一览: 字符串比较函数strcmp是怎样比较出两个字符串的大小的?

跟字符串的长度无关的.就是从两个字符串的头开始比.相应位的字符进行对比.实际上是比较相应位字符的ASCII码大小.如char
*s1="abc";char
*s2="bd";执行strcmp(s1,s2),其结果是负的.从两个字符串的头开始比,因为字符串s1中的'a'小于s2中的'b'所以s1
<s2;再如:char
*s1="abc";char

*s2="ad";其结果也是负的,因为s1中的'b'
<s2中的'd'再如:char
*s1="abc";char

*s2="ab";其结果就是正的.因为s1中的'c'大于s2中的'\0';因为字符串的最后一个字符是\0;再如:char

*s1="abc";char

*s2="abcd";其结果是负的.因为s1中的'\0'小于s2中的'd';
</s2中的'd'再如:char
</s2;再如:char

用strcmp函数怎么比较两个字符串的比较?

strcmp()函数是通过两个字符串一个一个字符比较的(最多比较次数为第二个参数的长度+1)
例如strcmp("hello","here");
首先比较第一个字符'h'= 'h'相等
接着比较第二个字符'e'= 'e'相等
.接着比较第三个字符 'l'>'e',返回一个正值
如果字符串完全相等会回0
strcmp是字符串比较函数,作用是比较字符串1和字符串2
如:strcmp(str1,str2);
strcmp("china","korea");
比较的结果由函数带回。
(1)如果字符串1=字符串2,函数值为0。
(2)如果字符串1〉字符串2,函数值为一正整数
(3)如果字符串1
<字符串2,函数值为一负整数
具体程序的例子:

#include

#include

#include

void

main()

{

char

a[50],b[50];

printf("请输入字符串a:

\n");

gets(a);

printf("请输入字符串b:

\n");

gets(b);

if(strcmp(a,b)>0)

printf("a>b");

else

if(strcmp(a,b)<0)

printf("a
<b");
else

if(strcmp(a,b)==0)

printf("a==b");

system("pause");

}
</b");

</字符串2,函数值为一负整数

c语言中用compstr如何实现比较两个字符串的大小

比较字符串大小的函数为 : strcmp
strcmp(str1, str2) > 0; str1大于 str2;
strcmp(str1, str2) == 0; str1 等于 str2;
strcmp(str1, str2) < 0; str1 小于 str2;
求采纳

c语言的strcmp函数怎么比较字符串?

strcmp函数用于两个字符串的比较,具体用法如下:
1、strcmp函数接受两个字符串类型的参数传入,根据比较结果返回一个int类型的值。
2、若返回结果的值小于 0,则表示在ASCII码上, str1字符串 小于 str2字符串。
3、若返回结果返回值 大于0,则代表 str2字符串 小于 str1字符串。
4、只有当返回值 为0时,两个字符串才是相同的。
扩展资料:
该函数只能用于比较字符串,不能比较数字等其他形式的参数,否则会报错。
根据ANSI的标准,函数的返回值为正数,负数,0 。不同的C返回的数值会有所不同。当两个字符串不相等时,C的标准没有规定返回值会是 1 或 -1,只规定了正数和负数。
通常情况下,会将两个字符的 ASCII 码之差作为比较结果由函数值返回。因此使用函数进行逻辑判断时应特别注意。
参考资料:
strcmp-百度百科

C语言中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)。
【返回值】若参数s1
和s2
字符串相同则返回0。s1
若大于s2
则返回大于0
的值。s1
若小于s2
则返回小于0
的值。
所以比较的是字典序的大小,比如"a"

"ASDNZONWAOIDAOWIJDOWADNWO"要大
"aaaab"

"aaaaa"

长度不影响比较结果,除非两个字符串一个是另一个的子串,那么返回值会被影响

c语言中strcmp函数 如果两个字符串长度不一样时要怎么比较大小啊?

它是从第一个字母开始比较的,就是逐个比较字母呗,直到出现结果为止。这个比较与字符串的长度没有必然关系的。例如:love>abandon.
它的原理可以用以下程序解释:

#include

void main()

{

int i=0;

int c,d;

char a[100],b[100];

printf("输入第一串字符\n");

gets(a);

printf("输入第二串字符\n");

gets(b);

while(a[i]!='\0'&&b[i]!='\0')

{

c=a[i];

d=b[i];

if(c>d) {printf("%d\n",c-d);

break;}

if(c
<d) {printf("%d\n",-(d-c));
break;}

i++; }

}

两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\0'为止,如”abc"和“ad"比,先比较'a'和'a',一样大小,然后比较'b'和'd',因为'b'<'d'所以返回-1;

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

http://baike.baidu.com/view/1026924.htm

兄弟可以去百科看一下这个函数的源代码,有助于加深理解。

#define debug

/*

this routine is made by elapser ;

*/

int elapser_strcmp (char* pstra ,char* pstrb)

{

if (pstra == 0 || pstrb == 0)

return 0 ;

while (*pstra != '\0' && *pstrb != '\0' && *pstra == *pstrb)

{

pstra++ ;

pstrb++ ;

}

return *pstra - *pstrb ;

}

#ifdef debug

int main ()

{

int elapser_strcmp (char* pstra ,char* pstrb) ;

char* pstra = "abcdefg" ;

char* pstrb = "abcd" ;

char* pstrc = "abcdefg" ;

char* pstrd = "abcdgg" ;

printf ("stra ? strb is %d\n" ,elapser_strcmp (pstra ,pstrb)) ;

printf ("stra ? strc is %d\n" ,elapser_strcmp (pstra ,pstrc)) ;

printf ("stra ? strd is %d\n" ,elapser_strcmp (pstra ,pstrd)) ;

阅读更多 >>>  三星s6怎么设置语音信箱

return 0 ;

}

#endif

下次这些问题自己可以检验的,就别问了,多动手!

给出下面的例子;

#include

#include

int main()

{char a[5]="look";

char b[7]="lookly";

if(strcmp(a,b)>0)

printf("%s>%s\n",a,b);

else

printf("%s<%s\n",a,b);

return 0;

}

C语言中strcmp函数比较字符串大小是在比较字符串的什么?

图中的代码是错误的,不能通过编译的。因为'aBC'根本就是错误的。单引号内最多只能有一个字符。
strcmp是比较ascll码
如果是字符串的话 它是逐字符比较的
也就是说 如果两个字符串开头分别是a和A 那 无论后面的字符是什么 第一个字符串都比第二个大
首先strcmp比较字符串的大小比较的是字符串各个对应位置的字符的ASCII码的大小。
而这里输出的并不是谁大谁小,按%d格式输出的只不过是将多字节字符存储到内存后,连续4个字节的内容转换成整数后的结果,换句话说按%d输出'aBC'的结果是97*65536+66*256+67=6373955。
规则如下: 当s1 当s1=s2时,返回值= 0; 当s1>s2时,返回正数; 即:两个字符串自左向右逐个字符相比(按ascii值大小相比较),直到出现不同的字符或遇'\0'为止。如: "a"<"b"...
c语言中的strcmp函数比较字符串A和B,如果A中第一个字符的ASCII大于B中第一个字符串的ASCII,则A整体大于B;
若A中第一个字符ASCII等于B中第一个字符,则比较第二个字符的大小,依次类推
对于第二个问题,为什么小写字母的ASCII码比大写字母大,这个就不是程序员能知道的了,这个得问创作这个的人

c语言中比较两个字符串的大小

一:(这个调用了 string.h 头函数)
#include

#include

void comparision(char a[],char b[])

{

if(strcmp(a,b)>0) printf("a[40]>b[40]");

else if(strcmp(a,b)==0) printf("a[40]=b[40]");

else printf("a[40]
<b[40]");
}

main(void)

{

char a[40],b[40];

gets(a);

gets(b);

comparision(a,b);

}

2:这个是普通方法 不调用函数strcmp();

#include

int comparision(char a[],char b[])

{

int t,i=0;

while(a[i]!='\0'||b[i]!='\0')

{

if(a[i]==b[i]) t=0;

else if(a[i]>b[i]) t=1;

else t=-1;

if(t!=0) break;

i++;

}

return t;

}

main(void)

{

char a[40],b[40];

int k=0;

gets(a);

gets(b);

k=comparision(a,b);

if(k==1) printf("a[40]>b[40]");

else if(k==-1) printf("a[40]
<b[40]");
else printf("a[40]=b[40]");

}

#include

int comparison(char a[],char b[])

{

int i;

for(i=0;a[i]!='\0'||b[i]!='\0';i++)

{

if(a[i]>b[i]) return 1;

else if(a[i]
<b[i]) return -1;
}

if(a[i]=='\0'&&b[i]=='\0') return 0;

if(a[i]=='\0') return -1;

return 1;

}

void main()

{

char a[100],b[100];

int t;

printf("请输入两个字符串:\n");

scanf("%s%s",a,b);

t=comparison(a,b);

if(t==1) printf("%s > %s",a,b);

else if(t==-1) printf("%s < %s",a,b);

else printf("%s == %s",a,b);

printf("\n");

}

int comparison(char *str1,char *str2)

{

while(*str1!='\0'&&*str1!='\0')

{ if(*str1==*str2)

{ str1++; str2++;

}

else return *str1-str2;

}

return 0;

}

在C语言中比较字符串大小,可以使用库函数strcmp,也可以自己编写比较函数。

1、使用库函数。

需要包含头文件string.h。声明为:

int strcmp(const char *s1, const char *s2);

会根据字典序比较s1和s2, 如果二者相等,则返回0;如果s1较小则返回-1;如果s1较大则返回1。

比如

strcmp("123", "123") 结果为0。

strcmp("123", "456") 结果为-1。

strcmp("456", "123") 结果为1。

2、自定义函数。

实现字符串比较的方法有很多,其基本原理为按字节比较。

举例如下:

int my_strcmp(char *s1, char *s2){ int i; for(i = 0; s1[i] == s2[i] && s1[i]!=0; i++);//循环比较,达到结束或者出现不相等值时退出循环。 if(s1[i] == s2[i]) return 0;//代表全部相等,返回0 if(s1[i]
<s2[i]) return -1; s1较小,返回-1。 1; s1较大,返回1.}

</b[40]");

</b[40]");

在C语言中字符串的大小怎么比较啊?

strcmp
原型:extern int strcmp(char *s1,char * s2);
用法:#include

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

说明:

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

当s1>s2时,返回值>0

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

"abcdefg"和"12",首先比较'a'和'1','a'的ASC码是97,'1'的ASC码是49,所以"abcdefg"> "12",返回值是97-49=48

"abc"和"ABC",首先比较'a'和'A','a'的ASC码是97,'A'的ASC码是65,所以"abc"> "ABC",返回值是97-65=32

"1000"和"2",首先比较'1'和'2','1'的ASC码是49,'2'的ASC码是50,所以"1000"< "2",返回值是49-50=-1

strcmp(str1, str2);

str1>str2 返回1, str1 < str2返回-1,str1 == str2 返回0

从第一个字符开始比较它们ascii的大小

先比第一个字符的内码,第一个字符谁大就谁大,第一个相同就比第二个,以此类推,比如“12”>"100"成立

strcmp 原型:extern int strcmp(char *s1,char * s2); 用法:#include

阅读更多 >>>  16sPro和16s区别是什么

功能:比较字符串s1和s2。 说明: 当s1
<s2时,返回值
s2时,返回值>0 即:两个字符串自左...

//输入任意一个数字,转换为字符串输出

#include

void

main()

{

int

n

=

0;

char

str[10]={0};

printf("input

a

number:");

scanf("%d",

&n);

sprintf(str,

"%d",

n);

printf("the

string

is:[%s]\n",

str);

}

1、C语言中字符是使用char来定义的,使用关系运算符(>,<,=)即可对字符进行比较。

2、在编译器中定义a、b两个字符型变量,并为其赋值。

3、运行代码后,我们可以得到如图所示结果。1表示条件为真,0表示条件为假。

4、字符串使用char[]来定义,可以使用strcmp()来判断大小,也可以使用关系运算符(>,<,=)判断大小。

5、使用strcmp()对字符串进行比较大小时,需要引入头文件string.h。

6、运行代码后,我们可以得到如图所示结果。:使用strcmp进行判断时,返回结果为0,表示两个字符串相等。返回结果大于0,表示第一个参数字符串大。返回结果小于0,表示第二个参数字符串大。

</s2时,返回值

</s2时,返回值<0

网站数据信息

"strcmp怎么比较字符串大小,c语言的strcmp函数怎么比较字符串?"浏览人数已经达到20次,如你需要查询该站的相关权重信息,可以点击进入"Chinaz数据" 查询。更多网站价值评估因素如:strcmp怎么比较字符串大小,c语言的strcmp函数怎么比较字符串?的访问速度、搜索引擎收录以及索引量、用户体验等。 要评估一个站的价值,最主要还是需要根据您自身的需求,如网站IP、PV、跳出率等!