Pierwszy kod wyświetla co drugi znak:
Ten program wyświetla dane wejściowe wspak:
Na MS VS EE kompilują się, nie wywalają ostrzeżeń, i działają poprawnie. GGC na spoju wywala błąd SIGSEGV. Co do dziwnego wykonania to nie można stosować int,string.h, tylko wskaźniki na char.
W pierwszym kodzie faktycznie warunek (*(p-1)!=0) wychodzi poza tablice ale jest on mi niezbędny do działania dla ciągów znaków o numerach nie parzystych. Nie wiem jak to poprawić.
include <iostream>
using namespace std;
int main()
{
while(!cin.eof())
{
char tablica[1000];
cin>>tablica;
char *p;
for(p=tablica;( (*p!=0)&&(*(p-1)!=0) );p+=2)
{
cout<<*p;
}
cout<<endl;
}
system("pause");
return 0;
}Ten program wyświetla dane wejściowe wspak:
#include <iostream>
using namespace std;
int main()
{
char txt[1000];
char *p;
while(!cin.eof())
{
cin>>txt;
for(p=txt;*p!=0;p++){}
for(p=p-1;p>=txt;p--)
{
cout<<*p;
}
cout<<endl;
}
system("pause");
return 0;
}
Na MS VS EE kompilują się, nie wywalają ostrzeżeń, i działają poprawnie. GGC na spoju wywala błąd SIGSEGV. Co do dziwnego wykonania to nie można stosować int,string.h, tylko wskaźniki na char.
W pierwszym kodzie faktycznie warunek (*(p-1)!=0) wychodzi poza tablice ale jest on mi niezbędny do działania dla ciągów znaków o numerach nie parzystych. Nie wiem jak to poprawić.