#include <string.h>
char s1[10],s2[10]; ... if(strcmp(s1,s2)==0) printf("两字符串相等\n");
string.h 头文件中就有比较函数,可以用来比较是否相等

2:这个是普通方法 不调用函数strcmp();
#include &lt;stdio.h&gt;

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]&gt;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]&gt;b[40]");
else if(k==-1) printf("a[40]&lt;b[40]");
else printf("a[40]=b[40]");
}

【解惑】C语言中为什么两个字符串不能直接进行比较?

大家都知道,在C语言中两上字符串是不能直接进行比较的,我们一般使用<string.h>中的字符串比较函数strcmp()来进行两个字符串的比较。那么,为什么不允许两个字符串直接进行比较呢?可做如下解释:
有如下代码: char s1[] = "abc"; char s2[] = "abc";
如果直接进行比较: if (s1 == s2) { printf("s1等于 s2"); } else { printf("s1 不等于s2"); }
大家想想输出结果会是什么呢?
输出结果永远为:s1 不等于 s2.(不论你换成char s1[] = "abc"; char s2[] = "def"; 还是char s1[] = "def"; char s2[] = "abc";,输出结果都一样)。
为什么呢? 大家因为这样比较,其实是在把s1和s2当作指针来进行比较,而不是比较两个数组中的内容。因为s1和s2在内存中位置肯定不同,所以s1 == s2的值肯定为0,所以出现上面的结果也就是理所当然了。

这个应该可以追溯到C语言中 数组(字符串也可认为是数组)的访问机制

摘自

C语言字符串比较(转)的更多相关文章

  1. C语言字符串操作总结大全(超详细)

    本篇文章是对C语言字符串操作进行了详细的总结分析,需要的朋友参考下 1)字符串操作  strcpy(p, p1) 复制字符串  strncpy(p, p1, n) 复制指定长度字符串  strcat( ...

  2. C语言字符串拷贝

    C语言字符串拷贝利用指针操作,要清楚知道指针的指向 代码如下: #include <stdio.h> #include <assert.h> #include <stri ...

  3. C语言字符串长度(转)

    C语言字符串长度的计算是编程时常用到的,也是求职时必考的一项. C语言本身不限制字符串的长度,因而程序必须扫描完整个字符串后才能确定字符串的长度. 在程序里,一般会用strlen()函数或sizeof ...

  4. C语言字符串操作常用库函数

    C语言字符串操作常用库函数 *********************************************************************************** 函数 ...

  5. c语言字符串操作大全

     C语言字符串操作函数 函数名: strcpy 功  能: 拷贝一个字符串到另一个 用  法: char *stpcpy(char *destin, char *source); 程序例: #incl ...

  6. 转:C语言字符串操作函数 - strcpy、strcmp、strcat、反转、回文

    转自:C语言字符串操作函数 - strcpy.strcmp.strcat.反转.回文 C++常用库函数atoi,itoa,strcpy,strcmp的实现 作者:jcsu C语言字符串操作函数 1. ...

  7. C 语言字符串连接的 3种方式

    C 语言字符串连接的 3种方式 #include<stdio.h> #include<stdlib.h> #include<string.h> char *join ...

  8. C语言字符串声明

    重新学习C语言字符串声明char *a="nihao";char a[]="nihao";什么区别?前者定义的是指针,并且指向字符串常量“nihao”,后者是字 ...

  9. C语言字符串操作函数整理

    整理C语言字符串相关的函数,以程序方式验证,以注释方式做说明. #include<stdio.h> #include<string.h> #include<stdlib. ...

  10. 13-C语言字符串函数库

    目录: 一.C语言字符串函数库 二.用命令行输入参数 回到顶部 一.C语言字符串函数库 1 #include <string.h> 2 字符串复制 strcpy(参数1,参数2); 参数1 ...

随机推荐

  1. 在Microsoft-IIS/10.0上面部署mvc站点的时候,出现404的错误

    写在前面 在家自己弄了一个项目,想部署在电脑上用手机来访问,总是出现404的错误.路由什么的没有写错啊,最后发现是映射程序的问题,在安装的时候iis很多功能没有安装,又将iis的其他没有安装的功能勾选 ...

  2. 标准库errno.h 查看错误代码编号,errno:4 与error:2

    log 里报错,errno:4   与errno:2 查了一下 errno.h   --------下文来自百度百科 errno 编辑 errno 是记录系统的最后一次错误代码.代码是一个int型的值 ...

  3. 最长公共子序列(LCS)

    简单的DP. f[i][j]表示序列a中前i个中,序列b中前b个中,组成的最长公共子序列的长度. DP方程: if(a[i-1]==b[j-1]) f[i][j]=f[i-1][j-1]+1;  el ...

  4. 老项目的#iPhone6于iPhone6Plus适配#iPhone6分辨率与适配

    技术博客http://www.cnblogs.com/ChenYilong/    本文永久地址为http://www.cnblogs.com/ChenYilong/p/4011744.html ,转 ...

  5. 二分图最大匹配的K&#246;nig定理及其证明

     二分图最大匹配的K?nig定理及其证明 本文将是这一系列里最短的一篇,因为我只打算把K?nig定理证了,其它的废话一概没有.    以下五个问题我可能会在以后的文章里说,如果你现在很想知道的话,网上 ...

  6. 如何让ThinkPHP的模板引擎达到最佳效率

    默认情况下ThinkPHP框架系统默认使用的模板引擎是内置模板引擎.内置模板引擎支持模板文件中采用php原生态代码和模板标签的混合使用.ThinkPHP官方开发文档说,这种默认的内置模板引擎的性能是高 ...

  7. FineUI第一天

    示例:http://fineui.com/demo/ 文档:http://fineui.com/doc/ 下载:http://fineui.codeplex.com/ 1.fineUI基于extjs, ...

  8. chrome断点续传功能

    刚好找到了一个临时的解决方法,chrome其实已经内部实现了断点续传功能,不过应该还没完善,所以要自己打开.方法:用chrome在地址栏输入chrome://flags用搜索找到resumption( ...

  9. jQuery backgroundColor的animate效果

    我们知道jQuery几乎是我们最常用的javascript库了,不过尽管他自己本身拥有大量的特效,但却仍然缺少一些动画效果.比如说,颜色.背景颜色的变换. animate一般只支持大小,位置,透明度的 ...

  10. 关于Xcode6 Segue 的疑问,没有解决!

    xcode6 的segue 变化了,如图 关于前3个选项,始终没有太明白,我试验结果如下,简单地把几个viewController连接起来时,无论用show,还是showdetail,还是Presen ...