Как подать символ завершения строки - C (СИ)

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

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

Начал изучать с. Эта программа должна подсчитывать количество символов. Во-первых, программа неправильно работает, так как (как я понял) ей не подают символ завершения строки. Во-вторых, как подать символ завершения строки ? Пытался писать -1, так как выяснил, что значение eof равно -1, но ничего не произошло.
#include <stdio.h>
 
main()
{
    long nc;
    
    nc = 0;
    while (getchar() != EOF)
        nc++;
    printf ("%ld\n", nc);
}

Решение задачи: «Как подать символ завершения строки»

textual
Листинг программы
void checkArr(int Z[], int &size, int &j, char str[]) {
    int i = 0;
    for (int num=0;;)
        {
            while (str[i]!='\0'&&str[i]==' ')
                i++;
            if (str[i]=='\0') break;
            if (str[i+1]!=' '&&str[i+1]!='\0') {
                num=num*10+(str[i]-48);
                i++;
            }
            else {
                Z[size]=num*10+(str[i]-48);
                size++;
                i++;
                num=0;
                j++;
            }
        }
}

Объяснение кода листинга программы

  1. В функции checkArr передается массив целых чисел Z, размер которого хранится в переменной size.
  2. Переменная j инициализируется значением size.
  3. В функции также передается строка str, в которой содержатся числа, разделенные пробелами.
  4. В начале функции инициализируется переменная i со значением 0.
  5. Далее в цикле for происходит считывание чисел из строки str.
  6. Внутри цикла в цикле while происходит поиск следующего числа в строке.
  7. Если в строке найден ноль, то цикл прерывается.
  8. Если после пробела найдено число, то оно добавляется в массив Z и увеличивается размер массива size.
  9. Если после пробела не найдено число, то в массив Z добавляется предыдущее число и увеличивается индекс j.
  10. Если в строке после пробела не найдено число, то в массив Z добавляется ноль.
  11. После окончания цикла for в переменной num остается последнее прочитанное число.
  12. Это число добавляется в массив Z и увеличивается размер массива size.
  13. Индекс j увеличивается на единицу.
  14. Если в строке после последнего числа не найдено пробелов, то в массив Z добавляется ноль.
  15. Функция возвращает j как количество прочитанных чисел.
  16. Функция может использоваться для разбиения строки на числа и записи их в массив.
  17. Функция может использоваться для считывания чисел из строки в массив, разделенных пробелами.
  18. Функция может использоваться для чтения чисел из строки, разделенных пробелами, и записи их в массив.
  19. Функция может использоваться для чтения чисел из строки и записи их в массив, разделенных пробелами.
  20. Функция может использоваться для чтения чисел из строки и записи их в массив, разделенных пробелами, и подсчета количества прочитанных чисел.

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


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

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

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