Как прочитать целое предложение после того, как оно прочитало определенное слово на С - PullRequest
0 голосов
/ 27 сентября 2019

У меня есть вход, и в этом входе мне нужно, чтобы пользователь ввел свой адрес, но он должен содержать определенное слово, в данном случае слово «Jalan».я уже пытался использовать strcmp, и когда я вводил только "Jalan", это правильно.

Но то, что я хочу, это "Jalan blablabla ....".Например, если я ввожу «Jalan Hasanuddin», он возвращает значение «ложь» на strcmp.

. Подводя итог, я хочу, чтобы моя программа проверила, есть ли конкретное слово в пользовательском вводе и содержит ли оно то слово, которое я хочуполное предложение для прочтения.

#include <stdio.h>
#include<string.h>

int main()
{

    char nama[20];
    char alamat[50];
    char nama_barang[30];
    int banyak_pesanan;
    int kartu_kredit;
    int limit = 1;

    printf("\t\t\t\t\t   Purchase Order Pipi Shop\n");
    printf("\t\t\t\t\t ****************************\n");

    while(limit == 1)
{

    printf("Masukkan nama [1..20] : ");
    scanf("%[^\n]%*c", nama);
    printf("Masukkan alamat [1..50 !! mengandung \"Jalan\"] : ");
    scanf("%[^\n]%*c", alamat);

    if( strcmp(alamat, "Jalan") != 0 && strcmp(alamat, "jalan") != 0) 
{
    printf("invalid\n");
    continue;
}
        else
{
    limit -= 1;
{



}
    printf("%s", alamat);


return 0;
}

Если я введу, например: jalan hasanuddin, оно выведет недействительное значение, даже если в нем есть слово «jalan».Мне нужно полное предложение, и мне нужно, чтобы в нем было слово «джалан»

Ответы [ 2 ]

0 голосов
/ 27 сентября 2019

Вместо этого вы можете изучить некоторые алгоритмы текстового поиска, такие как алгоритм Кнута-Морриса-Пратта или Бойера-Мура.И в будущем вы сможете легче решать такие проблемы.

0 голосов
/ 27 сентября 2019

Используйте strncmp с длиной имени.

В вашем случае это будет использоваться как:

if( strncmp(alamat, "Jalan", 5) != 0 && strncmp(alamat, "jalan", 5) != 0)

Это проверяет только первые 5 символов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...