2016-03-02 1 views
-7

Я новичок в программировании и я новичок в языке C, я хочу спросить о моей проблеме, когда сделать, если еще:C: если-то еще о переменных

код для каждого фрукты ..

А-001 для Apple, с $ 3

A-002 для винограда с $ 4

B-001 для авокадо с $ 2

B-002 для Orange с $ 1

Тогда вход будет Количество, фрукты код

И выход будет Total (кол-во * цена)

Но когда я делаю это так:

If (fruitcode=='A-001')

Это говорит мне, что постоянная символа слишком длинная. Что я должен использовать для кода фруктов? Это просто Integer или персонажи или что?

Это мой код:

д для Кол-во часов для цен K для Fruit Код

Int основных() { ИНТ д, з, к, т;

printf("============================================\n"); 
printf("=     Program     =\n"); 
printf("============================================\n"); 
printf("  Fruit Code  Fruit  Prices \n"); 
printf("  A-001   Apple  Rp. 13.000 \n"); 
printf("  A-002   Grape  Rp. 16.000 \n"); 
printf("  B-001   Avocado Rp. 10.000 \n"); 
printf("  B-002   orange  Rp. 12.000 \n"); 
printf("============================================\n"); 
printf("\n"); 
printf(" \n"); 
printf("============================================\n"); 
printf("=     Form     =\n"); 
printf("============================================\n"); 
printf("Transaction Time: "); 
scanf("%s", &t); 
printf("Fruit Code : "); 
scanf("%s", &k); 

if(k=='A-001') 
    printf("You Choose Apple"); 
} 
else if(k='A-002'){ 
    printf("You Choose Grape"); 
} 
else if(k='B-001'){ 
    printf("You Choose Avocado"); 
} 
else{ 
    printf("You Choose orange"); 
} 


printf("Quantity: "); 
scanf("%s", &q); 

getch(); 
return 0; 
} 
+0

Вы можете использовать любой тип, который вы хотите, зависит от того, что вам нужно сделать с этим. Обратите внимание, что '' '' используется для 'char', а не строк, и что строки нельзя сравнивать с' == '. – Biffen

+0

использовать« A-001 »действительно из «A-001». «string»/'char' – Manu

+0

Как вы кодировали строки или что? Покажите образец своего кода. –

ответ

2

Вам понадобится использовать двойные кавычки для строки, а не одинарные кавычки. Одиночные кавычки предназначены только для одиночных символов.

Вы также не можете сравнить такие строки. Вам нужно будет использовать что-то вроде strcmp().

0

Для сравнения строк в C используйте функцию strcmp.

2

fruitcode, вероятно, окажется в стиле C-стиля строка; то есть это будет указатель (типа char*) на массив с нулевым завершением элементов char.

Затем вы использовали что-то на линиях if (!strcmp(fruitcode, "A-001")) для проверки равенства.

Обратите внимание, что я использовал двойные символы кавычек для обозначения строкового литерала.

(с использованием одного символа кавычек означает нечто совершенно иное: если вы заключите более чем один символ в одиночных символов кавычек, то C интерпретирует, что в массиве литеру То, что это на самом деле означает это определяется реализацией, я думаю, что ваш компилятор. жалуется на длину вашего массива символов, превышающую sizeof(int).)

0

Вы должны использовать strcmp:

if (strcmp (fruitcode, "A=001") == 0) 
0

В C, вы не можете сравнить fruitcode с "A-001". Оператор C == может сравнивать только символы, а не строки символов (только одиночные символы).

Если вы хотите сравнить их, сделайте следующее:

strcmp(fruitcode,"A-001");

Обратите внимание на " " в моем ответе; Это подразумевает строку. По вашему вопросу ' ' подразумевает символ. У вас не может быть более одного символа внутри ' ' (кроме специальных символов, таких как '\n', которые выглядят как 2 символа, но представлены 1 (символ линии в этом случае).