Найти количество слов, состоящих из трех и более букв - C (СИ)
Формулировка задачи:
а етот код как переделать из C++ в C
#include <iostream>
#include <string>
#include<fstream>
using namespace std;
int main()
{
ifstream f("file.txt");
string word;
int countOfLongWords=0;
while (!f.eof())
{
f >> word ;
if ((int)word[0] == 97 || (int)word[0] == 101 || (int)word[0] == 105 || (int)word[0] == 111
|| (int)word[0] == 117)
{
cout << word << " ";
if (word.size() > 3) countOfLongWords++;
}
}
cout << endl << endl << "Count of words, longer than 3 symols is equal to " << countOfLongWords << endl << endl;
//system("pause");
return 0;
}Решение задачи: «Найти количество слов, состоящих из трех и более букв»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#define string_len 4
int main()
{
FILE *filep;
char *word;
int countOfLongWords=0;
word = malloc(string_len);
filep = fopen("file.txt","w+");
while (fgets(word,string_len,filep)!=NULL)
{
if (((int)word[0] == 97) || ((int)word[0] == 101) || ((int)word[0] == 105) || ((int)word[0] == 111)
|| ((int)word[0] == 117))
{
printf("%s\n",word);
if (sizeof(*word) > 3) countOfLongWords++;
}
}
printf("Count of words , longer than 3 symols is equal to %d",countOfLongWords);
free(word);
fclose(filep);
return 0;
}
Объяснение кода листинга программы
В данном коде происходит подсчет количества слов в файле, длина которых больше трех символов. Список действий следующий:
- Включаются необходимые заголовочные файлы для работы с файлами и памятью.
- Определяется размер строки (в данном случае 4 символа).
- Открывается файл с помощью функции fopen. Режим
w+означает открытие файла для чтения и записи. - Выделяется память под строку с помощью функции malloc.
- Начинается цикл, который будет выполняться до тех пор, пока не закончится файл (до достижения конца строки).
- Проверяется условие, что первая буква слова является одной из заданных (a, e, i, o, u, A, E, I, O, U).
- Выводится на экран найденное слово.
- Увеличивается счетчик, если длина слова больше 3 символов.
- Закрывается файл и освобождается память** с помощью функций fclose и free.
- Выводится на экран количество слов, длина которых больше 3 символов.
- Завершается программа с возвратом 0.