Mam pod pewna zmienna ciag znakow (napis1). Wszystko działa piknie jezeli w stringu sa 2 znaki "|" wtedy string zostanie podzielony na 3 czesci, ale jak juz wystepuje tylko jeden albo w ogóle to mam blad:( I nie mam juz pomysla jak to poprawic. Zamieszczam kod ponizej moze ktos pomoze jak to zrobic zeby program dzialal dobrze. Tzn. jezeli sa 2 znaki "|" w stringu to ma go podzielic na 3 czesci. Jezeli wystepuje jeden znak na 2 czesci. I jezeli nie ma znaku"|" w stringu ma go nie dzielic. prosze o pomoc
#include <iostream.h>
#include <string.h>
int main()
{
int a;
char *napis1;
//napis1="Kasia|Asia|Basia";
napis1="Kasia|Asia";
char *p1, *p2=napis1;
char buf_lin[32];
while(p1=strchr(p2,'|'))
{
strncpy(buf_lin,p2,p1-p2);
buf_lin[p1-p2]=0;
p2=p1+1;
}
char *ile, *p3=napis1;
ile=strchr(p3,'|');
char lin1[20];
strncpy(lin1,p3,ile-p3);
lin1[ile-p3]=0;
cout<<'\n'<<lin1;
cout<<'\n'<<buf_lin;
cout<<'\n'<<p2;
cin>>a;
}