Dlaczego to nie działa?

11 lipca 2007 o 11:19:11 | w Programowanie

Czy ktoś może mi powiedzieć, dlaczego w poniższym kodzie podświetlony warunek nie wykonuje się? Chodzi mi o przypadek, gdy str2 nie zostanie znalezione w str1. Mimo tego, że według dokumentacji funkcja strstr() powinna zwracać NULL.

#include 
#include 

using namespace std;

int main()
{
char str1[80], str2[80];
char *ptr;

cout << "Wpisz tekst do przeszukania:";
cin >> str1;

cout << "Co mam wyszukac?";
cin >> str2;

ptr = strstr(str1, str2);
cout << "Znalazlem: " << '\'' << str1 << '\'' << " w ";
cout << '\'' << str2 << '\'' << '\n';
cout << ptr;
if(ptr==NULL) cout << "Nic z tego!"; // highlight
return 0;
}


Komentarze »

  1. Nie wiem o co Ci chodziło dokładnie, ale po przeróbce na coś takiego, działa:

    if(ptr)
    {
    cout << „Znalazlem: „ << ‘\’‘ << str1 << ‘\’‘ << „ w „;
    cout << ‘\’‘ << str2 << ‘\’‘ << ‘\n’;
    cout << ptr;
    }
    else cout << „Nic z tego!”; // highlight

    przez sawyer — 11 lipca 2007 o 12:10:17 #

  2. Zapewne wywala się przy próbie wyświetlenia, kiedy ptr = NULL

    cout << ptr;

    przez Guest — 11 lipca 2007 o 12:14:54 #

  3. Tylko nie rozumiem co to ma wspólnego z techblogiem ?

    przez barkoz — 11 lipca 2007 o 12:19:03 #

  4. a ja nie rozumiem, po co z bloga robić forum czy grupę dyskusyjną?

    przez coldpeer — 11 lipca 2007 o 12:23:43 #

  5. Po wyświetleniu ptr (cout << ptr) gdy ptr==NULL dalsza część wyjścia jest jakby ucinana.

    if(ptr==NULL) cout << „Nic z tego!”; // highlight
    cout << ptr;
    cout << ‘\n’;
    return 0;

    Powyższy kod nie wyśiwetli ‘\n’ gdy ptr==NULL. Gdy ptr!=NULL działa dobrze.

    przez lato_p — 11 lipca 2007 o 12:31:41 #

  6. jeden szczegół: zamiast

    cout << ‘\n’

    rób:

    cout << endl

    (bardziej przenośne)

    przez AdamK — 11 lipca 2007 o 12:32:14 #

  7. Proszę zdjąć z techbloga

    przez Sparrow — 11 lipca 2007 o 13:48:51 #

  8. To ciekawe czemu służy techblog jeśli nie wpisom poświęconym tematyce komputerowej?

    przez splash — 11 lipca 2007 o 14:04:58 #

  9. @Splash, ale nie służy do rozwiązywania problemów.
    Gdyby każdy używał techbloga to pisania tam o swoich problemach technicznych, to sensowne wpisy zginęłby w gąszczu problemów.

    przez _kUtek_ — 11 lipca 2007 o 17:01:11 #

  10. Ale spojrz na to z innej strony: rozwiązanie problemu w komentarzach wlasnie sprawi, ze wpis bedzie wartosciowy i przyda sie potomnym.

    przez splash — 11 lipca 2007 o 17:02:11 #

  11. to jak Dandysowi się uda, to może zamieścić wpis na techblogu i opisać co to robi. ;-)

    przez _kUtek_ — 11 lipca 2007 o 17:03:03 #

  12. pomijam to co pisali przedpiścy.

    skoro korzystasz z strstr, zakładam, że includujesz string.h (nie widzę w kodzie u góry).
    imho nie powinno się mieszać kodu C z C++. skoro programujesz w C++ dlaczego nie korzystasz z STLowych stringów, które mają .find?

    przez G — 12 lipca 2007 o 17:00:37 #

Dodaj komentarz

W komentarzach nie działają znaczniki HTML, nowe linie tworzone są po nacisnięciu Entera.

Powered by JoggerPL. Design by Borja Fernandez, ported by Piotr Petrus.
Wpisy, nagłówki wpisów jako RSS. Poprawny XHTML i CSS. | Góra strony ↑