【问题标题】:comparing int and char in c ,using if condition比较 c 中的 int 和 char,使用 if 条件
【发布时间】:2021-01-18 18:07:46
【问题描述】:
 char  c[50];
scanf("%s",c);
int counter;
for(int i=0;i<strlen(c);i++){
    for(int j=0;j<=9;j++){
        if(j==c[i]) // this line not comparing 
        counter+=1;
    }

比较整数(j)和数组c中的数字,调试时不比较

【问题讨论】:

    标签: c loops for-loop char c99


    【解决方案1】:

    您需要比较代表数字的字符代码。例如可以通过以下方式完成

    if ( j + '0' == c[i] )
    

    注意你的代码sn-p中的变量count没有初始化。

    int counter;
    

    你需要初始化它

    int counter = 0;
    

    @pmg 指出的另一种编写循环的方法如下

    for( char j = '0'; j <= '9'; j++ ){
    

    您也可以使用标准 C 函数 isdigit 代替内部循环。

    if ( isdigit( ( unsigned char )c[i] ) ) ++count;
    

    【讨论】:

    • 工作谢谢,但你为什么在 j + '0' 中使用引号。它是如何工作的
    • @RajaSekharReddyEvuri 您正在比较字符串 c 的字符。因此,您还需要将它们与字符进行比较。字符 '1' 的计算结果类似于 '0' + 1。例如,在 ASCII 中,字符 '0' 的代码是 48,而字符 '1' 的代码是 49,字符 '2' 的代码是 50 和以此类推。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-24
    • 2014-05-17
    • 1970-01-01
    相关资源
    最近更新 更多