| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 519 人关注过本帖
标题:关于strncmp的疑问
取消只看楼主 加入收藏
ybyc9999
Rank: 1
等 级:新手上路
帖 子:55
专家分:0
注 册:2015-1-24
结帖率:90%
收藏
已结贴  问题点数:10 回复次数:2 
关于strncmp的疑问
程序如下:
#include <stdio.h>
#include <string.h>

int main(void){
    /*定义三个内容相似的字符串*/
    char str1[]="long time";
    char str2[]="long time";
    char str3[]="lonG time";

    int length=strlen(str1);

    /*分别输出三个字符串的内容*/
    printf("str1=\"%s\"\n",str1);
    printf("str2=\"%s\"\n",str2);
    printf("str3=\"%s\"\n",str3);

    /*演示strncmp函数的使用*/
    printf("strncmp(str1,str2,%d)=%d\n",
         length,strncmp(str1,str2,length));

    printf("strncmp(str3,str1,%d)=%d\n",
         length,strncmp(str3,str1,length));

    printf("strncmp(str1,str3,%d)=%d\n",
         length,strncmp(str1,str3,length));

    printf("strncmp(str1,str3,3)=%d\n",
         length,strncmp(str1,str3,3));

    printf("g-G=%d\n",'g'-'G');

    return 0;
}

gcc下执行结果:
str1="long time"
str2="long time"
str3="lonG time"
strncmp(str1,str2,9)=0
strncmp(str3,str1,9)=-32
strncmp(str1,str3,9)=32
strncmp(str1,str3,3)=9
g-G=32

红色部分比较的是str1和str3的前3个字符的大小,因为str1和str3前3位都一样,为什么输出结果不是0,而是9?

搜索更多相关主题的帖子: include 字符串 
2015-01-24 15:23
ybyc9999
Rank: 1
等 级:新手上路
帖 子:55
专家分:0
注 册:2015-1-24
收藏
得分:0 
回复 2楼 zklhp
没有警告,不过明白了,谢谢!
2015-01-24 15:47
ybyc9999
Rank: 1
等 级:新手上路
帖 子:55
专家分:0
注 册:2015-1-24
收藏
得分:0 
回复 4楼 zklhp
恩,谢谢
2015-01-24 18:05
快速回复:关于strncmp的疑问
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015824 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved