如何比较char *是否大于或等于另一个字符串/数字?

时间:2017-11-15 23:43:03

标签: c

我正在使用scanf将数字和+, - ,/运算符输入堆栈。

int scan = 1;
char * p = malloc(sizeof(char)*5);
while (scan = 1) {
    scanf("%1s", p);
    if(p>='0' && p<='9'){
        push(stack, p);
        print(stack);
    }
}

为什么它永远不符合条件?你怎么比较字符串?

2 个答案:

答案 0 :(得分:2)

好吧,如果你想要做的是测试字符串的第一个字符是否介于'0'和'9'之间,你应该这样做:

// select the first iframe
.frame(0)
// go back to the original html content
.frame()

但是如果你想将字符串比作字符串,那么旧的C库函数就是(*p >= '0' && *p <= '9') 。我相信现在有很多其他库可以提供更多功能。

答案 1 :(得分:1)

if(p>='0' && p<='9'){

pchar*'0'是char。您的编译器应该已经警告过您要比较不兼容的类型。请改用*p(同样适用于'9&#39;)。在我的脑海中*p被读作&#34; p&#34;的内容(在此背景下)

在更一般的情况下,使用strcmp()来比较字符串。

如果您的编译器确实警告过您的不良比较:请将其记录在案,大多数编译器警告应该被监听而不会被忽略。如果您的编译器没有警告您查找如何启用所有警告。