Доброго времени суток. Очень срочно нужна помощь с написанием программы на языке си! Даю последние баллы! Часть задания я сделала, но вот "последний кусочек " задачи никак не получается решить. Умоляю, помогите.
задание было таким:
Дан файл тхт
1) а.out открыть файл, если его нет сообщить об этом.
2)Найти строку (/n заканчивается) с наибольшим количеством гласных букв и вывести на экран.
3)На входе 2 строки, заменить все вхождения первой строки на вторую строку.
Не получается сделать 3 пункт.
Буду очень благодарна за помощь!
вот такой код я написал:
#include <stdio.h>
#include <string.h>
#include <assert.h>
#define VOWELS "AaEeIiOoUuYy"

size_t count_vowels(const char * s)
{
size_t cnt = 0;

for (s = strpbrk(s, VOWELS); s; s = strpbrk(s + 1, VOWELS))
cnt += 1;

return cnt;
}

#define FILE_NAME "file.txt"

int main(void)
{
char str[BUFSIZ], vowelsfull[BUFSIZ];
size_t curVovels, maxVovels;
FILE * fin = fopen(FILE_NAME, "r");
assert(fin);

if (!fgets(vowelsfull, BUFSIZ, fin))
{
fprintf(stderr, "Input file is empty or read error!\n");
return (1 | fclose(fin));
}
maxVovels = count_vowels(vowelsfull);
printf("%s", vowelsfull);

while (fgets(str, BUFSIZ, fin))
{
printf("%s", str);
curVovels = count_vowels(str);
if (curVovels > maxVovels) {
maxVovels = curVovels;
strcpy(vowelsfull, str);
}
}
if (ferror(fin) | fclose(fin))
fprintf(stderr, "Something wrong with input file!\n");

printf("\n\nMost vowels full string (contains %zu vowels):\n%s", maxVovels, vowelsfull);

return 0;
}​
Please enter comments
Please enter your name.
Please enter the correct email address.
You must agree before submitting.

Answers & Comments


Copyright © 2024 SCHOLAR.TIPS - All rights reserved.