Доброго времени суток, есть такой код на C:
#include <stdio.h>
#include <string.h>
int main() {
char delimeters[6] = " .,!?;", str, c, word;
int count = 0;
printf("Enter symbols combination: ");
scanf("%s", &str);
while ((c = getchar()) != EOF) {
char *entry = strchr(delimeters, c);
if (entry) {
char *check = strchr(&word, str);
if (check) {
count++;
}
strcpy(&word, "");
} else {
strcat(&word, &c);
}
}
printf("Result count: %d\n", count);
return 0;
}
Должно считаться количетсво слов, в которые входит заранее заданный шаблон. И всё бы хорошо, но проблема очень странная: значение count в итоге выводится 25610 или 1656726. При том если закомментировать слияние строк (strcat), то значение count меняется как положено, вот только программа тогда не делает что надо.
Пробовал выделять большие объёмы памяти для переменной word на случай если идет переполнение, но результат тот же-переменная count меняется на непонятные большие числа.
Подскажите пожалуйста, почему так происходит?