Логическая операция - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Только недавно начал изучать си, потому строго не судите, прошу помочь разобраться в решении вопроса, код и описание чуть ниже:
int main(void) {
  uint8_t q; /*пробовал char*/
    
    /*выводим текст в юарт */
    UART_Puts(UART1, "write a or test\n");

while (1) {
        /* читаем полученные данные */
        q = UART_Getc(UART1);
    if (q == 'a') { /*сравниваем, если введенная строка = a*/
            UART_Putc(UART1, q);  /*выводим в консоль то что ввели*/
            UART_Puts(UART1, "- ok!\n"); } /*говорим ok*/
                
else if (q == 'test1') { /*сравниваем, если введенная строка = test1*/
            UART_Putc(UART1, q);
                UART_Puts(UART1, "please try again!\n");    
                }
                else if(c) {
                    UART_Putc(UART1, q);
                }
Собственно сейчас при вводе одного символа, алгоритм отрабатывает как надо, но если пытаться ему скормить целиком слово, то программа отправляет слово по буквенно, т.е работает не правильно. Как правильно передать целую строку а не бить ее отдельно по символам?

Решение задачи: «Логическая операция»

textual
Листинг программы
int main(void) {
    char buffer[100];
    SystemInit();
    DELAY_Init();
    UART_Puts(UART1, "Hello\n");
 
    while (1) { 
    if (UART_Gets(UART1, buffer, sizeof(buffer)))
    { UART_Puts(UART1, buffer); }
                if (strcmp(buffer, "test1",5)==0) {
                UART_Puts(UART1, "ok\n");
            }
                else if (strcmp(buffer, "test1")== NULL)
                {
                    UART_Puts(UART1, buffer);
                }
            }
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.75 из 5
Похожие ответы