如何在操作选择中使用输入字符串制作计算器?我已经尝试过但它不起作用。我的演讲分配:)
printf("choose:");
scanf("%s", (char *) &choose);
switch(choose)
{
case 'tambah':
printf("Masukkan Nilai 1:");
scanf("%d", &x);
printf("Masukkan Nilai 2:");
scanf("%d", &y);
hasil = tambah(x,y);
printf("%d + %d = %d", x, y, hasil);
break;
case 'kurang':
printf("Masukkan Nilai 1:");
scanf("%d", &x);
printf("Masukkan Nilai 2:");
scanf("%d", &y);
hasil = kurang(x,y);
printf("%d - %d = %d", x, y, hasil);
break;
答案 0 :(得分:1)
使用字符串(考虑到你在你的例子中使用字符串,你只需将几个字符放入文字,这应该是char
)直接在C语句中的switch()
语句是一个可怕的想法。我建议您选择可能的选项并将其提供给strcmp
,以便相应地匹配您的操作和分支。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
enum {
tambah = 0,
kurang = 1
};
int decodeLineType(const char* strAction)
{
int i = 0;
char acAllowedCodes[2][7] = {"tambah","kurang"};
for(; i < 2; ++i)
{
if (strncmp(strAction, acAllowedCodes[i], strlen(acAllowedCodes[i])) == 0)
{
return i;
}
}
return(-1);
}
int main()
{
char choose[30] = {0};
scanf("%s", choose);
switch(decodeLineType(choose))
{
case tambah :
/* some logic here*/
break;
case kurang :
/* some logic here*/
break;
default:
break;
}
return(0);
}
Offtopic:当您即将在国际论坛上寻求指导时,请考虑使用英语为您的计划中的所有标签和变量名称。