比较 c 中的 int 和 char,使用 if 条件

Posted

技术标签:

【中文标题】比较 c 中的 int 和 char,使用 if 条件【英文标题】:comparing int and char in c ,using if condition 【发布时间】: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中的数字,调试时不比较

【问题讨论】:

【参考方案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 和以此类推。

以上是关于比较 c 中的 int 和 char,使用 if 条件的主要内容,如果未能解决你的问题,请参考以下文章

java 字符之间怎么比大小

C语言 返回指针的函数--指针函数 int* max(int a)

C - 将变量与sizeof(int)进行比较

请用c语言实现一个带数字比较的字符串比较函数strcmpint

c语言中的if和指针

vs2010和vs2019double转wf_char