Преобразовать строчные буквы в заглавные и наоборот - C (СИ)
Формулировка задачи:
Пожалуйста, помогите! Нужно написать программу для любого текстового файла!
Программа должна осуществлять вывод на экрана символов текста, содержащихся в заданном файле, инвертируя при этом все строчные буквы латинского алфавита в заглавные и наоборот - заглавные в строчные.
Вот как я начал программу:
Подскажите, какими дальше командами пользоваться и как вообще сделать это инвертирование??
#include <stdio.h>
int main()
{
int c, nc, nc1, nc2
char file_name_in[FILENAME_MAX];
char file_name_out[FILENAME_MAX];
FILE* f_in;
FILE* f_out;
printf("File in: ");
scanf("%s", file_name_in);
f_in=fopen(file_name_in, "rt");
if(f_in==NULL)
{
printf("ERROR: cannot open file in\n");
return -1;
}
printf("File out: ");
scanf("%s", file_name_out);
f_out=fopen(file_name_out, "wt");
if(f_out==NULL)
{
printf("ERROR: cannot open file out\n");
return -2;
}Решение задачи: «Преобразовать строчные буквы в заглавные и наоборот»
textual
Листинг программы
#include <stdio.h>
#include <ctype.h>
int main(void) {
FILE * f;
int c;
if ( ! ( f = fopen("file.txt", "r") ) )
return -1;
while ( ( c = fgetc(f) ) != EOF )
putchar( isupper(c) ? tolower(c) : toupper(c) );
return ( fclose(f) );
}
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы для работы с файлами и функциями работы со строками.
- Указываем, что функция main() возвращает значение типа void.
- Объявляем переменную f типа FILE*.
- Объявляем переменную c типа int.
- Открываем файл
file.txtс помощью функции fopen() и сохраняем указатель на файл в переменную f. - Если открытие файла не удалось, то возвращаем -1.
- В противном случае, начинаем читать файл посимвольно с помощью функции fgetc() и сохранять символы в переменную c.
- Выводим символ на экран с помощью функции putchar().
- Применяем функции isupper() и tolower() к символу c для преобразования строчных букв в заглавные и наоборот.
- Возвращаем значение функции fclose() для закрытия файла.