Итак, я проходил онлайн-книгу «Learn C the hard way», и я решил проверить свои навыки с помощью этой программы. Я хочу сделать так, чтобы пользователь мог ввести письмо и посмотреть, соответствует ли он любому из символов секретного слова, чтобы они могли догадаться об этом. Должен ли я использовать операторы if else
внутри оператора for? Также я не могу заставить программу сказать мне, что я получил письмо, даже если я его правильно вводил.Попытка понять, как запрограммировать массив в C
#include <string.h>
#include <stdlib.h>
int main()
{
/*Declaring the variables the user needs. One for the
the user enters and the other for the secret word.*/
char user_inputted_letter[1];
char secret_word[] = {'Q','u','a','l','m'};
printf("See if you can guess the secret 5 letter word, if you enter in a letter \n"
"that matches a letter in the secret word it will be displayed in \n"
"a random order for you to guess! \n");
scanf("%s",user_inputted_letter);
printf("Your user inputted letter is %s \n",user_inputted_letter);
/*for statement to scan each of the characters
in secret_word. If statement detects if there is a match
between the secret character and inputed value */
int i=0;
for(i=0; i < 6;i++)
{
if(secret_word[i] == user_inputted_letter[1]){
printf("The matching letter you entered with the secret word is %s \n",user_inputted_letter);
}
else
printf("There were no matching letters with the secret word\n");
}
return 0;
}
Скажет ли книга ничего о массивах, начиная с индекса 0 ? – vanza
Немного вещей - массивы начинаются с индекса 0, а не 1. Во-вторых, поскольку ваш вход имеет только место для одного символа, все, что вы введете, вызовет переполнение буфера; вам нужен второй слот для нулевого терминатора. –
Вы также можете инициализировать массив символов с помощью 'char secret_word [] =« Qualm »;'. Вы можете обнаружить, что это проще при работе со строками. Просто обратите внимание, что создаст постоянный литерал с нулевым завершением (который требуется, если вы хотите обрабатывать «секретное слово» как строку). Это означает, что общая длина 'secret-word' будет' 6' вместо '5'. (он не изменит оставшуюся часть вашего кода) –