Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

string, znak '\0', zadanie ze spoja

Ostatnio zmodyfikowano 2015-12-09 11:22
Autor Wiadomość
Asahel
Temat założony przez niniejszego użytkownika
string, znak '\0', zadanie ze spoja
» 2015-12-09 10:42:12
Mam problem z zadaniem ze spoja http://pl.spoj.com/problems​/AL_13_10/.

C/C++
#include <iostream>
#include <string>

using namespace std;

int main()
{
    string a;
    string b;
    int x( 0 ), y( 0 );
   
    cin >> a >> b;
   
    //tak długo aż skończą się literki w a lub b
    while(( a[ x ] != '\0' ) ||( b[ y ] != '\0' ) )
    {
        //szukamy podciagu, a nie czy istnieja literki z ktorych mozna stworzyc drugi wyraz
        if( a[ x ] == b[ y ] )
        {
            y++;
            x++;
        }
        else
        {
            x++;
        }
        //cout<<"x:"<<x<<endl; dla sprawdzenia
        //cout<<"y:"<<y<<endl; dla sprawdzenia
    }
   
    //jestli sprawdzilo wszystkie literki w b i doszło do znaku null to oznacza, ze istnieje taki podciag
    if( b[ y ] = '\0' )
    {
        cout << "Tak" << endl;
    }
    else
    {
        cout << "Nie" << endl;
    }
   
   
   
}

Problem jest z pentlą while, która nie działa jak oczekuję. Ma porównywać te znaki aż do momentu gdy skończą się literki w pierwszym lub drugim wyrazie. Petla robi sie w nieskoczonosc :/. Jak to poprawic :(

P-141651
j23
» 2015-12-09 10:57:41
W warunku while zamiast || powinno być &&.
P-141652
Asahel
Temat założony przez niniejszego użytkownika
» 2015-12-09 11:22:59
Działa, był bład
b[ y ] = '\0'
 :) Zaakceptowała z czasem 0.73 - ciut miernie. Ma ktoś pomysł jak poprawić ten algorytm?
P-141654
« 1 »
  Strona 1 z 1