首页 > 解决方案 > 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"

为什么会这样?

标签: cvb.net

解决方案


在 C 中,字符串只是字符数组,它转换为字符指针。

因此,要比较字符串,您必须使用函数strcmp

您的代码应如下所示

strcmp(over18, "Y") != 0

推荐阅读