如何解决如何使用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 举报,一经查实,本站将立刻删除。