Подсчитать количество различных пар букв в заданной строке - C (СИ)
Формулировка задачи:
Помогите переделать код из С++ в С
Дана строка из строчных букв латинского алфавита, содержащая не менее 2 букв. Подсчитать количество различных пар букв в этой строке Парой букв будем называть любые две стоящие рядом буквы
#include <fstream> #include <iostream> using namespace std; int main() { ifstream fin; fin.open("input.txt"); int count[256][256]={0,}; char t1,t2; fin>>t1>>t2; while (!fin.eof()) { count[(int)t1][(int)t2]++; t1=t2; fin>>t2; } fin.close(); ofstream fout; fout.open("output.txt"); for (int i=0;i<256;i++) { for (int j=0;j<256;j++) { if (count[i][j]>0) { fout<<(char)i<<(char)j<<" "<<count[i][j]<<"\n"; } } } fout.close(); return 0; }
Решение задачи: «Подсчитать количество различных пар букв в заданной строке»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #include <string.h> int main() { FILE *in; in = fopen( "input.txt" , "r"); int count[256][256]={0,}; char t1,t2; fscanf (in, "%c%c", &t1,&t2); while ((t2 = getchar()) != EOF) { count[(int)t1][(int)t2]++; t1=t2; fscanf (in, "%c",&t2); } fclose(in); FILE *out; out = fopen( "output.txt", "w"); for (int i=0;i<256;i++) { for (int j=0;j<256;j++) { if (count[i][j]>0) { fprintf(out,"%c%c %10d\n",i,j,count[i][j]); } } } fclose(out); system("PAUSE"); return 0; }
Объяснение кода листинга программы
В этом коде на языке C подсчитывается количество различных пар букв в заданной строке. Вот список действий, которые происходят в коде:
- Включаются необходимые заголовочные файлы
- Открывается файл для чтения
- Создается двумерный массив для подсчета пар букв
- Считываются две буквы из файла
- Пока не достигнут конец файла, считывается вторая буква и увеличивается счетчик в массиве
- Закрывается файл
- Открывается файл для записи
- Записываются пары букв и их количество в файл
- Закрывается файл
- Выполняется команда для приостановки выполнения программы до нажатия клавиши
- Возвращается 0, чтобы указать, что программа успешно завершилась
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д