В данный момент я работаю над коротким заданием, в котором я, учитывая слово, должен распечатать положение этих слов по алфавиту.Попытка сделать это в C. В настоящее время пытаюсь решить проблему, при которой, если слово «it» является входным, «it» и «fit» будет считаться как два вхождения.Вид исправил это для случаев, таких как (это) alics, отслеживая персонажа впереди.Невозможно воспроизвести в обратном направлении.Любая помощь приветствуется.
Код:
void compareWord(char word[], int size){
char c;
int index = -1; //Assuming we want first char index in text to be 0.
char spaceCheck = ' ';
while ((c = getchar()) != EOF) {
index++;
if (c == word[0]) {
char storing = c;
char otherWord[size];
otherWord[0] = c;
for (int i = 1; i < size ; i++) {
otherWord[i] = (storing = getchar());
index++;
}
if (((storing = getchar()) == ' ' ) || (storing == '\n') && (strcmp(word, otherWord) == 0)) {
index++;
int wordIndex = index;
wordIndex -= size;
printf("%d \n", wordIndex);
} else
index++;
}
spaceCheck = c;
}
}
int main() {
char word[] = "it";
compareWord(word, 2);
}
Переменная 'spaceCheck' была моей попыткой проверить, является ли символ перед словом пробелом или нет.Ранее имелась (spaceCheck == ' ' )
в длинном операторе if, не работала.