Разбить строку на слова и вывести количество повторений этих слов в строке - C (СИ)
Формулировка задачи:
Слова разделены пробелами
Решение задачи: «Разбить строку на слова и вывести количество повторений этих слов в строке»
textual
Листинг программы
#include <stdio.h>
#include <conio.h>
#include <string.h>
int main(int argc, char* argv[])
{
static char str[256] = "apple fruit banana apple banana fruit orange apple orange fruit banana apple orange\0";
static char** words = new char*[256];
memset((void*)words, 0x00, 4 * 256);
char* word = strtok(str, " ");
for (int i = 0; word != NULL; i++)
{
words[i] = new char[256];
strcpy(words[i], word);
word = strtok(NULL, " ");
}
for (int i = 0; words[i] != NULL; i++)
{
int count = 1; bool f = false;
for (int k = i - 1; k >= 0 && !f; k--)
f = (!strcmp(words[k], words[i])) ? 1 : 0;
for (int j = i + 1; words[j] != NULL && !f; j++)
if (!strcmp(words[i], words[j])) count++;
if (f == false)
printf("word = %s count = %d\n", words[i], count);
}
_getch();
return 0;
}