Я немного заржавел в C. Я выполняю школьное задание, в котором меня просят создать программу, которая получает пользовательский ввод, после чего печатает вывод. Если количество символов превышает 50, ничего не распечатывать и не запрашивать их повторно. Выход не должен печатать счет (в данном случае 4).
Это то, что у меня есть до сих пор:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main ()
{ /*Start of main*/
printf("Type any word you'd like <= 50 characters.\nType quit to exit:\n");
char word[50];
int wordLength = 0;
while (strcmp(word, "quit") != 0)
{/*open of while loop (strcmp ... != 0)*/
scanf("%s\n", word);
wordLength = strlen(word);
if (wordLength > 50)
{
printf("Try again, >= 50 characters!:\n");
scanf("%s", word);
wordLength = strlen(word);
}
printf("%d\n", wordLength);
}/*End of while loop (strcmp... != 0)*/
return 0;
}/*End of main*/
Кажется, я не могу получить длину сразу после отправленного слова. Кажется, он становится шатким. Он показывает номер ПОСЛЕДНЕГО отправленного слова после ввода нового слова. Неважно, куда я положил printf, на это нужно время.
Может ли кто-нибудь объяснить мне, почему он такой медленный, и предложить метод, который я мог бы реализовать, чтобы ускорить его? Это школьное задание, пожалуйста, не давайте прямых ответов, но подскажите, как мне следует думать? :)
Я почти думаю, что это неэффективное кодирование с задержкой.
Вы все спасатели!!!