Мне нужно найти повторяющиеся символы в 2 строки - PullRequest
0 голосов
/ 29 января 2019

Я пытаюсь найти повторяющиеся элементы в 2 строках.Вот что я сделал.

int main()
{
    int i, j;
    char S[5];
    char J[4];
    printf("Enter the 1st string\n");
    scanf("%s", &S);
    printf("\nEnter the 2nd string\n");
    scanf("%s",&J);
    printf("\n1st string characters are %s", &S);
    printf("\n2nd string characters are %s", &J);


    for(i=0; i<5; i++)
    {
        for (j=0; j<3; j++)
        {

        if(J[j] == S[i])
        {
            printf("\n\nThe element is found and is at %c", *(&S[i]));
            break;
        }
        else
        {
            printf("\nNo matching element found");
            break;
        }
        }
    }
    return 0;

} 

Вывод, который я получаю:

Введите 1-ю строку asdf

Введите 2-ю строку cfv

1-йстроковые символы в формате asdf 2-ые строковые символы в формате cfv

The element is found and is at
No matching element found
No matching element found
No matching element found
No matching element found
No matching element found

Есть идеи, почему это может происходить?Я новичок в этом.Любая помощь приветствуется

1 Ответ

0 голосов
/ 29 января 2019

я могу сделать несколько предложений в вашем цикле, заменить i <5 и j <3 на <code>i<strlen(S) аналогично j<strlen(J) strlen используется для вычисления длины строки.и не используйте перерыв;в противном случае он пропустит цикл при первом совпадении.попробуйте это

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

int main() {
 int i, j;
char S[]="rat";
char J[]="fat";


printf("\n1st string characters are %s", &S);
printf("\n2nd string characters are %s", &J);


for(i=0; S[i] != '\0';; i++)
{
    for (j=0; J[j] != '\0';; j++)
    {

    if(J[j] == S[i])
    {
        printf("\n\nThe element is found and is at %c", *(&S[i]));

    }
    else
    {
        printf("\nNo matching element found");

    }
    }
}
return 0;
}

нажмите здесь, чтобы увидеть вывод Вывод показан на изображении. извините, в моей системе не было компилятора acон-лайн и может быть поэтому местоположение не отображается, но да, это решает вашу проблему, обнаруживаются совпадения.

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