c - 在 if? 中保存并使用 memchr 的返回值? "if ( ptr = memchr(str1, ' 4', sizeof(str1)) )"?

标签 c

问题:如果你这样做

if ( ptr = memchr( str1, '4', sizeof(str1) ) )
{
    // do stuff using ptr
}

然后你每次都会输入并做“东西”。 但如果你只是这样做

if ( memchr( str1, '4', sizeof(str1) ) )
{
    // would do stuff but don't have ptr!
}

然后您将进入,但您将没有指向“4”在 str1 中的位置的指针。 我需要针对几种可能性进行评估和处理,例如如果为“4”,否则如果为“7”,否则如果为“1”等。

那么评估该字符是否存在并使用返回的指针的最有效方法是什么?当然不是

if ( memchr( str1, '4', sizeof(str1) ) )
{
    ptr = memchr( str1, '4', sizeof(str1) )
    // do stuff using ptr
}

最佳答案

赋值运算符返回被赋值的值,这(连同右结合性)是 a=b=c; 起作用的原因。所以你的第一个例子会工作得很好。

关于c - 在 if? 中保存并使用 memchr 的返回值? "if ( ptr = memchr(str1, ' 4', sizeof(str1)) )"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7502332/

相关文章:

c - 在 Xcode 7 中链接静态 C 库?

c - printk 适用于某些功能但不是全部

c - 如何使用 printf 格式化 unsigned long long int?

c - C 中的多线程程序 - 比单线程运行时间更长

c - C中生产者-消费者的线程安全环形缓冲区

c - 如何用C语言将文件中的数据存储到数组中

c - GtkWindow 未被文件选择器识别为 C

c++ - 在匿名的情况下使用 libcurl 检索 github 版本

c - 从c中的文本文件中读取列的算法

c - 未在此范围内声明(C 语言错误)