Мне нужно распечатать все слова в файле, которые начинаются с заглавной буквы - PullRequest
0 голосов
/ 14 мая 2019

мне нужен доступ к файлу, и из этого файла мне нужно распечатать все слова, которые начинаются с заглавной буквы, а также сколько раз слова встречались. например в файле есть текст "Программа должна отображать файлы, а также файлы" теперь вывод должен быть:

Текст

Программа

Дисплей

Файлы (2) // Это слово написано два раза

введите описание изображения здесь

Ответы [ 2 ]

1 голос
/ 14 мая 2019

Это звучит как домашнее задание, поэтому я не собираюсь помещать код здесь.Я могу дать вам шаги, чтобы получить общее представление:

  • Откройте и прочитайте файл
  • Используйте что-то вроде strtok разбить строки на слова
  • Зацикливать слова и проверять первый символ (помните, что слово представляет собой массив символов. Вы можете проверить, находится ли оно в диапазоне 60 - 95, как на основе ascii table .
  • Для подсчета слов вы можете создать хэш-карту, в которой вы сохраните слово со счетчиком в качестве значения, например, {word1: 1, word2: 2}
  • В конце вы пройдете по всем клавишам.в hashmap и распечатайте ключ + count.
1 голос
/ 14 мая 2019

while (!feof(..)) обычно не очень хорошая идея, вместо этого напишите

while (fgets(readLine,sizeof(readLine), fpointer) != NULL)
{
}

. В этом контексте ptr является излишним, если вы хотите проверить наличие слов в строке, вы должны переместить его вперед влиния?

альт.используйте вместо этого функцию времени выполнения strtok:

for (ptr = strtok(readLine, " "); ptr != NULL; ptr = strtok(NULL, " ")
{
   // now ptr will point to each word in the line, then you just check
   // if the first character is upper case.
 }    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...