Подсчитать количество различных пар букв в заданной строке - 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, чтобы указать, что программа успешно завершилась