Из заглавных букв маленькие, а из маленьких заглавные - C (СИ)
Формулировка задачи:
Короче говоря, задача такая. Надо, чтобы программа принимала данные из файла, которые, по сути являются строками. Например:
Hello world!
JavaScript language 1.8
A letter
Нужно сделать так чтобы сообщение изменилось таким образом:
hELLO WORLD!
jAVAsCRIPT LANGUAGE 1.8
a LETTER
т.е. чтобы заглавные буквы стали маленькими, а маленькие заглавными.
Для этого я написал условную функцию
Я её проверял - рабочая! Проблема у меня возникает с тем, как считывать строки из файла и записывать их в массив, который и будет перенаправляться в функцию, которую я написал выше. Честно говоря, бьюсь и не могу понять как это сделать.
Мой первый вариант функции main() выглядел так
Не работает такая штука, что то не так с fscanf. Пробовал массу вариантов, но не получается. Понимаю, что в деле чтения строк из файла я дуб дубом пока что, и вы моя последняя надежда! Помогите! HELP! SOS!
void converter (char mess[]){ int i=0; char c; while (mess[i]) { c=mess[i]; if (islower(c)){ c=toupper(c); putchar (c); i++;} else if(isupper(c)){ c=tolower(c); putchar(c); i++; } } }
int main(int argc, const char * argv[]) { FILE *message = fopen(argv[1], "r"); char str[]=""; while(!feof(message)){ fscanf(message, 20, str); converter(str); } fclose(message); return 0; }
Упс, функция от чего-то тоже не работает...
Вот рабочий вариант функции, сорри))
void converter (char mess[]){ int i=0; char c; while (mess[i]) { c=mess[i]; if (islower(c)) c=toupper(c); else if (isupper(c)) c=tolower(c); putchar (c); i++; } }
Ещё раз напомню суть проблемы, а то приходилось дополнять: Я не понимаю как сделать так, чтобы
считывалась строка из файла -> помещалась в массив(потом массив в функцию converter)
считывалась следующа строка из файла -> помещалась в массив
и так до конца файла.
Решение задачи: «Из заглавных букв маленькие, а из маленьких заглавные»
textual
Листинг программы
char line [128]; while ( fgets ( line, sizeof(line), file ) != NULL ) { >>> твой код <<< } fclose (file);
Объяснение кода листинга программы
- В первой строке объявлена переменная типа char с именем
line
и размером 128 байт. - Затем следует цикл while, который будет выполняться до тех пор, пока функция fgets не вернет NULL (что означает конец файла).
- Внутри цикла while находится блок кода, который будет выполняться для каждой строки в файле.
- В этом блоке кода происходит некая обработка строки, но точный код не указан.
- После окончания цикла while следует вызов функции fclose, которая закрывает файл.
- Файл, который нужно закрыть, передается в функцию fclose через параметр file.
- Если файл был успешно закрыт, функция fclose вернет 0.
- Если при закрытии файла произошла ошибка, функция fclose вернет 1.
- В случае успешного выполнения цикла while и закрытия файла, программа продолжит работу.
- Если при закрытии файла произошла ошибка, программа прервется и завершится.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д