c - C VS VB 中的比较
问题描述
这是C代码:
do
{
printf("\nOver eighteen (Y/N): ");
scanf("%c", over18);
if(over18 != "Y" || over18 != "N")
{
printf("\nInvalid input");
}
} while(over18 != "Y" && over18 != "N");
嘿,我是 C 的新手,我正在尝试将我学习时的旧 VB 代码转换为 C。我试图为程序的这一部分执行此操作,但这给出了错误“警告:指针和整数之间的比较”用于我使用“!=”进行的所有比较。
这是VB代码:
Do
Console.WriteLine("Are you over eighteen (Y/N)?")
over18 = Console.ReadLine()
If over18 <> "Y" And over18 <> "N" Then
Console.WriteLine("That is not a valid answer")
End If
Loop Until over18 = "Y" Or over18 = "N"
为什么会这样?
解决方案
在 C 中,字符串只是字符数组,它转换为字符指针。
因此,要比较字符串,您必须使用函数strcmp
。
您的代码应如下所示
strcmp(over18, "Y") != 0
推荐阅读
- apache-kafka - 我可以将多个转换器/处理器附加到 Apache Kafka 中的单个流吗
- beautifulsoup - python抓取错误AttributeError:'NoneType'对象没有属性'text'
- machine-learning - 哪种聚类算法更可能给出预期的聚类结果
- c++ - 使用 avcodec_decode_subtitle2 (FFmpeg) 提取(解复用)字幕
- android - 从不正确的线程访问领域。领域对象只能在创建它们的线程上访问,同时尝试在 spinnerlistener 中使用
- ios - 链接 swift 的数组高阶函数的性能如何?
- android - 在设计模式下打开布局时“出了点问题”
- c# - C# Linq 合并多个列表?
- python - class_weights 如何应用于 sklearn 逻辑回归?
- python - Django:移动“奥斯卡”网站包