Как подать символ завершения строки - 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++; } } }
Объяснение кода листинга программы
- В функции
checkArr
передается массив целых чиселZ
, размер которого хранится в переменнойsize
. - Переменная
j
инициализируется значениемsize
. - В функции также передается строка
str
, в которой содержатся числа, разделенные пробелами. - В начале функции инициализируется переменная
i
со значением 0. - Далее в цикле
for
происходит считывание чисел из строкиstr
. - Внутри цикла в цикле
while
происходит поиск следующего числа в строке. - Если в строке найден ноль, то цикл прерывается.
- Если после пробела найдено число, то оно добавляется в массив
Z
и увеличивается размер массиваsize
. - Если после пробела не найдено число, то в массив
Z
добавляется предыдущее число и увеличивается индексj
. - Если в строке после пробела не найдено число, то в массив
Z
добавляется ноль. - После окончания цикла
for
в переменнойnum
остается последнее прочитанное число. - Это число добавляется в массив
Z
и увеличивается размер массиваsize
. - Индекс
j
увеличивается на единицу. - Если в строке после последнего числа не найдено пробелов, то в массив
Z
добавляется ноль. - Функция возвращает
j
как количество прочитанных чисел. - Функция может использоваться для разбиения строки на числа и записи их в массив.
- Функция может использоваться для считывания чисел из строки в массив, разделенных пробелами.
- Функция может использоваться для чтения чисел из строки, разделенных пробелами, и записи их в массив.
- Функция может использоваться для чтения чисел из строки и записи их в массив, разделенных пробелами.
- Функция может использоваться для чтения чисел из строки и записи их в массив, разделенных пробелами, и подсчета количества прочитанных чисел.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д