微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用switch语句将字符串值分配给变量

如何解决如何使用switch语句将字符串值分配给变量

我的计划的目的是计算各个城市之间的旅行费用。该程序将给出源城市列表,然后是目标城市列表。输入每个城市的首字母,将允许用户选择他们的城市。

我希望程序能够接收用户的输入并将其分配给给定的城市之一。

//Declarations
    char src_city[15];
    char dest_city[15];
system("cls");
    puts("\n");
    printf("ENTER THE SOURCE CITY: \n\n");
    printf("B for Baltimore\n\n");
    printf("C for Chattanooga\n\n");
    printf("N for Nashville\n\n");
    printf("P for Pasadena\n\n");
    puts("");
    scanf("%c",&src_city);
    switch(src_city)
    {
    case 'B': case 'b': ("Baltimore");
    break;
    case 'C': case 'c': ("Chattanooga");
    break;
    case 'N': case 'n': ("Nashville");
    break;
    case 'P': case 'p': ("Pasadena");
    break;
    }
    getchar();

“ B”,“ C”,“ N”和“ P”是我希望用户输入的字母,以及他们何时将其分配给相应城市的字母。

但是,当我使用这种方法时,会出现错误

“分配给具有数组类型的表达式”。

我查找了此错误,然后被告知要使用if / else if语句,该语句依次失败。 switch语句方法对我来说最有意义。

我需要将字符串值分配给相应的变量(src_city / dest_city),因为稍后需要在printf()语句中调用这些变量。

解决方法

您没有显示有问题的实际代码,但是从问题描述(“分配给数组类型的表达式” )中猜测,您正在尝试类似

  src_city = "Baltimore";

这是无效的,因为数组类型的变量不是可修改的左值,因此无法分配给它。您需要使用strcpy(),例如

 strcpy(src_city,"Baltimore");

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。