C:比较2个字符

时间:2017-01-04 01:52:30

标签: c

我想比较两个字符, 如果char_1 == char_2,则必须打印出1:print 0 但事实并非如此,

只是第一次测试是正确的,其余的都是假的 我将附上一些测试用例及其输出

的示例

我有这个代码

#include<stdio.h>
#include<string.h>
#include<ctype.h>


int check_char(char x , char y );
int check_spec_char(char x , char y);

int main ()
{
    int i , x;
    char k , l ;
    for(i = 0 ; i < 5 ; i++)
    {
        scanf("%c %c" , &k, &l );
        x = check_char(k , l);
        printf("%i\n\n", x);
    }
    return 0;
}


int check_spec_char(char x , char y)
{
    if(((x == 'e' || x == 'i' ) && (y == 'e' || y == 'i' )) ||
       (( x == 'p' || x == 'b') && ( y == 'p' || y =='b')))
    {
        return 1;

    } else
    {
        return 0 ;
    }
}


int check_char(char x , char y )
{
    x = tolower(x);
    y = tolower(y);

    if(x == y)
    {
        return 1 ;
    }
    else if (check_spec_char(x , y) == 1)
    {
        return 1 ;

    } else {

        return 0 ;
    }
}

测试用例及其输出

r  r
1

r  r
0

0

r  r
0

0

Process returned 0 (0x0)   execution time : 14.183 s
Press any key to continue.

1 个答案:

答案 0 :(得分:1)

使用scanf(&#34;%c%c&#34;,&amp; k,&amp; l);或scanf(&#34;%c%c&#34;,&amp; k,&amp; l); 这将消耗存储在缓冲区中的新行。