c语言字符串比较函数strcmp是什么意思

字符串是怎么比较大小啊?比如teacher和teaching,怎么判断谁大谁小啊????怎么完整下面这个程序,让teacher和teaching比较的结果出来??????... 字符串是怎么比较大小啊?比如teacher 和teaching,怎么判断谁大谁小啊????
怎么完整下面这个程序,让teacher和teaching比较的结果出来??????
#include<stdio.h>
#include<string.h>
void main()
{
char str1[20],str2[20];
printf("enter string1:");
gets(str1);
printf("\nenter string2:");
gets(str2);
strcmp(str1,str2);
}
展开
 我来答
帐号已注销
推荐于2019-11-02 · TA获得超过82.9万个赞
知道大有可为答主
回答量:2602
采纳率:100%
帮助的人:171万
展开全部

(1)strcmp是比较两个字符串的大小,两个字符串相同时返回0,第一个字符串大于第二个字符串时返回一个正值,否则返回负值.

(2)比较两个字符串的算法是:逐个比较两个串中对应的字符,字符大小按照ASCII码值确定,从左向右比较,如果遇到不同字符,所遇第一对不同字符的大小关系就确定了两个字符串的大小关系,如果未遇到不同字符而某个字符串首先结束,那么这个字符串是较小的,否则两个字符串相等。

扩展资料:

通常以串的整体作为操作对象,如:在串中查找某个子串、求取一个子串、在串的某个位置上插入一个子串以及删除一个子串等。

两个字符串相等的充要条件是:长度相等,并且各个对应位置上的字符都相等。设p、q是两个串,求q在p中首次出现的位置的运算叫做模式匹配。串的两种最基本的存储方式是顺序存储方式和链接存储方式。

字符串或串(String)是由数字、字母、下划线组成的一串字符。一般记为 s=“a1a2···an”(n>=0)。它是编程语言中表示文本的数据类型。在程序设计中,字符串(string)为符号或数值的一个连续序列,如符号串(一串字符)或二进制数字串(一串二进制数字)。

字符串数据类型是建模在形式字符串的想法上的数据类型。字符串是几乎在所有编程语言中可以实现的非常重要和有用的数据类型。

在某些语言中它们可作为基本类型获得,在另一些语言中做为复合类型获得。多数高级语言的语法允许通常用某种方式引用起来的字符串来表示字符串数据类型的实例;这种元字符串叫做“文本”或“字符串文本”。

尽管形式字符串可以有任意(但有限)的长度,实际语言的字符串的长度经常被限制到一个人工极大值。一般的说,有两种类型的字符串数据类型: “定长字符串”,它有固定的极大长度并且不管是否达到了这个极大值都使用同样数量的内存,和“变长字符串”,它的长度不是专断固定的并且依赖于实际的大小使用可变数量的内存。

参考资料:百度百科——字符串

往昔justme
2012-03-28 · TA获得超过104个赞
知道答主
回答量:26
采纳率:0%
帮助的人:27.8万
展开全部
int strcompare(char *s1,char *s2)
{
while(*s1==*s2&&*s1)
{
s1++;
s2++;
}
return (*s1-*s2);
}
即把两个字符串相对应的字符拿出来进行比较,返回第一个不等的字符比较的大小即可。C语言系统为用户提供了库函数strcmp可以实现以上函数功能。调用格式为:strcmp(s1,s2);
teacher 和teaching,第一个不等的字符是teacher的e和teaching的i,所以teaching大
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zsx10110
推荐于2017-10-14 · TA获得超过8872个赞
知道大有可为答主
回答量:2369
采纳率:66%
帮助的人:3081万
展开全部
strcmp(s1,s2)
  说明:
  当s1<s2时,返回值<0
  当s1=s2时,返回值=0
  当s1>s2时,返回值>0
两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\0'为止。如:
  "A"<"B" "a">"A" "computer">"compare"
追问
怎么完整这个程序,让他们比较大小啊?
#include
#include
void main()
{
char str1[20],str2[20];
printf("enter string1:");
gets(str1);
printf("\nenter string2:");
gets(str2);
strcmp(str1,str2);
}
追答
#include
#include
void main()
{
char str1[20],str2[20];
printf("enter string1:");
gets(str1);
printf("\nenter string2:");
gets(str2);
if(strcmp(str1,str2)>0)
{
printf("%s",str1);
}
else
{
printf("%s",str1);

}
}

我让他们输出大的字符串
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
不熬yeah
高粉答主

2019-12-21 · 说的都是干货,快来关注
知道小有建树答主
回答量:1793
采纳率:100%
帮助的人:42.6万
展开全部
1)strcmp是比较两个字符串的大小,两个字符串相同时返回0,第一个字符串大于第二个字符串时返回一个正值,否则返回负值.(2)比较两个字符串的算法是:逐个比较两个串中对应的字符,字符大小按照ascii码值确定,从左向右比较,如果遇到不同字符,所遇第一对不同字符的大小关系就确定了两个字符串的大小关系,如果未遇到不同字符而某个字符串首先结束,那么这个字符串是较小的,否则两个字符串相等。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友3076ef7
2012-03-28 · TA获得超过377个赞
知道小有建树答主
回答量:191
采纳率:0%
帮助的人:157万
展开全部
char *str="aaaa",*ch="bbbbb";
if(strcmp(str,ch)>0) //成立就是字符串str在字符串ch后面
if(strcmp(str,ch)==0) //成立就是字符串内容一致
if(strcmp(str,ch)<0) //成立就是字符串str在字符串ch前面
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式