标题:为什么当i<5时输入abcde abcde会出现-97而不是0?
只看楼主
kicnb
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2021-11-11
结帖率:0
 问题点数:0 回复次数:1 
为什么当i<5时输入abcde abcde会出现-97而不是0?

# include < stdio . h >
int main ()


 int strcmp ( char *p1, char *p2);
 char s1[5],s2[5]:
 int c;
 scanf ("% s % s ",s1,s2);
c = strcmp (s1,s2);
 printf ("% d ", c ); return 0;

int strcmp ( char *p1, char *p2)13{ int k , i ;
 for ( i =0; i <5; i ++)
{ if (*(p1+ i )==*(p2+ i )){ k =0;}
if(*(p1+ i )!=*(p2+ i )){ k =*(p1+ i )-*(p2+ i )7; break ;}

return k ;

搜索更多相关主题的帖子: int char 输入 出现 strcmp 
2021-11-23 00:30
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
好好排版一下吧,别浪费短暂的学习时间

程序代码:
#include <stdio.h>

int strcmp( const char* p1, const char* p2 );

int main( void )
{
    char s1[6], s2[6];
    scanf( "%s%s", s1, s2 );
    printf( "%d\n", strcmp(s1,s2) );
}

int strcmp( const char* p1, const char* p2 )
{
    const unsigned char* pa = (const unsigned char*)p1;
    const unsigned char* pb = (const unsigned char*)p2;
    for( ; *pa; ++pa,++pb )
    {
        if( *pa != *pb )
            return *pa - *pb;
    }
    return 0;
}
2021-11-23 08:28



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-507611-1-1.html




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

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