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

C++ Wyszukiwanie konkretnych słów z podanego zdania

Ostatnio zmodyfikowano 2013-07-15 20:28
Autor Wiadomość
kbviii
Temat założony przez niniejszego użytkownika
C++ Wyszukiwanie konkretnych słów z podanego zdania
» 2013-07-15 02:23:05
Witajcie!
Powoli wracam do nauki C++ ale po wieloletniej przerwie, więc można powiedzieć, że zaczynam od zera.
Potrzebuję zrobić krótki i prosty program który z podanego ciągu wyrazów wyszuka ten który ja wpiszę.
Na przykładzie PESELU -> program poprosi o wpisanie ciągu cyfr po czym porówna czy w ciągu znaków, który ja wcześniej zdefiniuję znajduje się taki pesel czy nie.

Napisałem coś takiego, ale kleiłem to ze wszystkich możliwych sposobów i nawet momentami działa, ale zazwyczaj albo wywala cały program (chyba przez tego printa) albo wyświetla jedną odpowiedz bez znaczenia co wpisze. Pomijam już fakt, że przerosła mnie funkcja "system ("pause")" i ją sobie darowałem.

Proszę o pomoc!



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

void print( std::string::size_type n, std::string const & s )
{
    if( n == std::string::npos ) {
        std::cout << "niestety nie mam go :(";
    } else {
        std::cout << "TAK!" << s.substr( n ) << '\n';
    }
}

int main()
{
   
    char name;
   
   
    std::cout << "Podaj swój PESEL";
   
    std::cin >> name;
   
   
    std::string::size_type n;
    std::string const s = "789789789798 46546546546 132321321546";
   
   
   
    n = s.find( name );
    print( n, "Mam taki pesel" );
   
   
   
    return 0;
   
}
P-87883
pekfos
» 2013-07-15 11:17:52
char to jeden znak, a nie tekst. Poza tym, po co ci drugi argument funkcji print()?
P-87886
kbviii
Temat założony przez niniejszego użytkownika
już finisz...
» 2013-07-15 15:08:23
Dzięki za podpowiedź ;)
Zmieniłem tego
char
 i
print
. Wszystko działa teraz poprawnie.
Mam tylko ostatni problem, po włączeniu on wyświetla wynik i od razu się wyłącza.
Próbowałem z
system( "pause" );
 ale nie pomogło.

Wygląda to tak:

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

void print( std::string::size_type n, std::string const & s )
{
    if( n == std::string::npos ) {
        std::cout << "niestety nie :(";
    } else {
        std::cout << "TAK!" << '\n';
    }
}

int main()
{
   
    std::string name;
   
   
    std::cout << "Czesc, wpisz swoje nazwisko i sprawdz czy jestes na liscie!      ";
   
    std::cin >> name;
   
   
    std::string::size_type n;
    std::string const s = "wysoka niska fajna brzydka iksinska kowalski";
   
   
   
    n = s.find( name );
    print( n, s );
   
   
   
    return 0;
   
}
P-87960
pekfos
» 2013-07-15 16:01:22
Możesz użyć getch() z conio.h.
P-87972
kbviii
Temat założony przez niniejszego użytkownika
SUPER!
» 2013-07-15 20:28:17
Dziękuję pięknie! :)
Wszystko działa jak należy!

Pozdrawiam
Mateusz
P-87991
« 1 »
  Strona 1 z 1