注册 登录
编程论坛 C语言论坛

为什么当i<5时输入abcde abcde会出现-97而不是0?

kicnb 发布于 2021-11-23 00:30, 940 次点击

# 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 ;

1 回复
#2
rjsp2021-11-23 08:28
好好排版一下吧,别浪费短暂的学习时间

程序代码:
#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;
}
1