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;
}
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
Zapewne wywala się przy próbie wyświetlenia, kiedy ptr = NULL
cout << ptr;
Tylko nie rozumiem co to ma wspólnego z techblogiem ?
a ja nie rozumiem, po co z bloga robić forum czy grupę dyskusyjną?
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.
jeden szczegół: zamiast
cout << ‘\n’
rób:
cout << endl
(bardziej przenośne)
Proszę zdjąć z techbloga
To ciekawe czemu służy techblog jeśli nie wpisom poświęconym tematyce komputerowej?
@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.
Ale spojrz na to z innej strony: rozwiązanie problemu w komentarzach wlasnie sprawi, ze wpis bedzie wartosciowy i przyda sie potomnym.
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?
to jak Dandysowi się uda, to może zamieścić wpis na techblogu i opisać co to robi. 😉