将格式化字符串与int进行比较

时间:2013-11-19 14:44:55

标签: c algorithm types formatting

我在c中有以下内容:

printf("(Type %d)\n", t[0].type); // displays: (Type 4)

我需要做一个比较来检查t[0].type是3,4还是5。

if (t[0].type == 4) { //code }

但它不起作用,因为t[0].type是从{2}读取的char

我尝试将t[0].type转换为带t[0].type - '0'的int,然后进行比较,但两者都不起作用。怎么做?

3 个答案:

答案 0 :(得分:1)

试试这个

if ( t[0].type == '4') {...}

答案 1 :(得分:0)

奇怪。如何跟随代码

printf("(Type %d)\n", t[0].type);

显示“Type 4”,如果存有'4'(字符)?

char x;
x = '4';

printf( "%d\n", x ); /*This will output 52*/

因此,您可以使用转化

if( x - '0' == 4 ){...}

它应该可以正常工作

答案 2 :(得分:0)

atoi()/ itoa()函数也应该有所帮助 或者查看ASCII Table。如果从变量中减去48(ascii代码为'0'),则最终得到它的整数值。

     if(([0].type - 48) == 4)
OR
     if((t[0].type - '0')== 4)

无论你喜欢什么。