Program wyszukujacy podany fragment w liczbie.

0
#include <iostream>
#include <conio.h>
using namespace std;

string liczba;
string fragment;
int x;

bool wyszukiwanie()
{
    int y=0;
    x = fragment.length();

        for(int i=0; i<=x; i++)
            {
                if(fragment[y]==liczba[i]);

                    else{i++;
                    continue;}

                y++;
                if (y==x)
                {
                    return true;
                    break;
                }

                else
                    if(y<x)
                    continue;

                else
                {
                    return false;
                    break;
                }

            }

}

int main()
{
cout<<"Wprowadz liczbe:"<<endl;

    getline(cin, liczba);

cout<<"Wprowadz fragment ktory chcesz znalezc:"<<endl;

    getline(cin, fragment);


        if(wyszukiwanie())
            cout<<"Dany fragmemt znajduje sie w tej liczbie."<<endl;
        else
            cout<<"Dany fragment NIE ZNAJDUJE sie w tej liczbie."<<endl;


}
 

Problem jest taki, ze program zawsze wypisuje komunikat "Dany fragmemt znajduje sie w tej liczbie.". Z gory dziekuje za pomoc i pozdrawiam. :)

0

Zrób jedno return - na końcu. Może pomoże.

0
#include <iostream>
#include <conio.h>
using namespace std;

string liczba;
string fragment;
int x;

bool wyszukiwanie()
{
    int y=0;
    x = fragment.length();

        for(int i=0; i<=x; i++)
            {
                if(fragment[y]==liczba[i]);

                    else
                    continue;

                y++;
                if (y==x)
                {
                    return true;
                    break;
                }

            }

}

int main()
{
cout<<"Wprowadz liczbe:"<<endl;

    getline(cin, liczba);

cout<<"Wprowadz fragment ktory chcesz znalezc:"<<endl;

    getline(cin, fragment);


        if(wyszukiwanie())
            cout<<"Dany fragmemt znajduje sie w tej liczbie."<<endl;
        else
            cout<<"Dany fragment NIE ZNAJDUJE sie w tej liczbie."<<endl;


}

 

nie pomglo :/

0

1.for(int i=0; i<=x; i++) iterujesz jeden raz za dużo.
2.

if(fragment[y]==liczba[i]);
 
                    else
                    continue;

Co to ma być?

0

@2
jezeli nie znajduje pierwszej liczby FRAGMENTU w pierwszej liczbie LICZBY to zwieksza tylko int i.

0

Powoli, powoli.

Mamy liczbę 12345 - czy jej fragmentem jest 234?
Mamy liczbę 12345 - czy jej fragmentem jest 134?

0
  1. Tak
  2. Nie
0

No to w najprostszej wersji:

bool czyFragment(string baza, string podciag) {
	return baza.find(podciag) > 0;
}
0
 
#include <iostream>
#include <conio.h>
using namespace std;

string liczba;
string fragment;
int x;

bool czyFragment(string baza, string podciag) {
    return baza.find(podciag) > 0;
}

bool wyszukiwanie()
{
    int y=0;
    x = fragment.length();

        for(int i=0; i<=x; i++)
            {
                if(fragment[y]==liczba[i]);

                    else continue;

                y++;
                if (y==x)
                {
                    return true;
                    break;
                }

            }

}

int main()
{
cout<<"Wprowadz liczbe:"<<endl;

    getline(cin, liczba);

cout<<"Wprowadz fragment ktory chcesz znalezc:"<<endl;

    getline(cin, fragment);


        if(czyFragment)
            cout<<"Dany fragmemt znajduje sie w tej liczbie."<<endl;
        else
            cout<<"Dany fragment NIE ZNAJDUJE sie w tej liczbie."<<endl;


}



dobrze wstawione? jesli tak to nie dziala

0

Wiesz, jak się korzysta z funkcji w ogóle?

0

Nie do konca, ucze sie.

0

Nagłówek funkcji wygląda tak: bool czyFragment(string baza, string podciag)
A Ty próbujesz ją wywołać w następujący sposób: if(czyFragment).
Nie sądzisz, że czegoś tam brakuje?

0

if(czyFragment())??

0

brakuje argumentow w nawiasach

0

if(czyFragment(string baza, string podciag))

0
if(czyFragment(liczba,fragment))
0

Sprawdzę jak tylko będę miał dostęp do komputera. Dziękuję bardzo i za pomoc i za cierpliwość :D

1 użytkowników online, w tym zalogowanych: 0, gości: 1