Как изменить строку WHILE на языке C, используя getche, язык C?

Я написал код для поиска строки среди группы строк, но в отличие от того, что мы должны вводить всю строку перед поиском, этот код сортирует совпадающие строки вместе с вводом каждой буквы, как в поиске Google. Но я не знаю, как вернуть строку назад, так как она принимает строку символ за символом. Только на языке C! Запустите код один раз, чтобы лучше понять.

#include <stdio.h>
#include <stdlib.h>

int main()
{
    char string[10];
    char s[5][10];
    int i, j, k;
    int e[5];
    char g;

    printf("\nEnter 5 Strings\n");

    //Enter 5 to search from
    for(i=0;i<5;i++)
    {
        printf("%d. ", i+1);
        scanf("%s", &s[i]);
        e[i]=1;
    }

    j=0;
    do
    {
        system("cls");
        printf("\nResults: ");
        for(k=0;k<5;k++)
        {
            if(e[k]==1) //String displays if not striked by Input
                printf("\n%s", s[k]);
        }

        printf("\n\nEnter Search String: ");
        for(i=0;i<j;i++)
        {
            printf("%c", string[i]);
        }
        g = getche(); // Character Input
        string[j]=g;  // Character stored in string to compare
        for(k=0;k<5;k++)
        {
            if(strncmp(string, s[k], j+1)!=0)
                e[k]=0; //Used so if character doesn't match, string 
                          eliminates
        }
        j++;

    }while(g!='\r');

    return 0;
}

0 ответов

Другие вопросы по тегам