Napisz program, który wyświetla na ekranie indeks tego znaku łańcucha wprowadzonego z klawiatury, który jest spacją. Jeśli nie ma takiego elementu, program wyświetla komunikat "brak spacji".
Załącznik 1 zawiera program w języku Python wraz z przykładowym wynikiem. W tym przypadku oraz – o ile nie zaznaczyłam inaczej – we wszystkich pozostałych jako przykładowego łańcucha użyłam tekstu „ a miłości bym nie miał, byłbym niczym ” zawierającego spację zarówno jako pierwszy element jak i też ostatni.
Załącznik 2 zawiera program w języku C#. Wynik uruchomienia jest identyczny jak programu napisanego w języku Python.
Załącznik 3 jest plikiem PDF zawierającym trzy różne wersje programu napisanego w języku C++. Pierwsza wersja działa pod Visual Studio (Visual C++). Druga wersja działa pod Code::Blocks oraz Dev-C++. A trzecia wszędzie, ale pod pewnymi warunkami...
Załącznik 4 pokazuje wynik uruchomienia pierwszej lub drugiej wersji programu w C++. Wprawdzie wyświetlone pozycje spacji są oczywiście takie same, ale widać wyraźną różnicę w tym co się pojawiło na ekranie.
Dla wygody załącznik 5 pokazuje w formie graficznej trzecią (najprostszą) wersję programu w C++. Wynik jej działania zupełnie nie ma polskich znaków, ale pod Visual Studio, Code::Blocks oraz Dev-C++ można wprowadzić teksty z polskimi znakami i uzyskać poprawne odpowiedzi.
Wyjaśnienie
W przypadku języka C++ nie można było bezpośrednio użyć cin ponieważ czytałby on do pierwszej spacji.
Trzecia wersja programu w C++ wprawdzie jest najprostsza i działa wszędzie, ale w przypadku uruchomienia przy użyciu systemu Linux, Cygwin lub któregoś ze środowisk on-line (na przykład replit lub onlinegdb ) poprawne wyniki będą uzyskiwane tylko w przypadku ograniczenia się do znaków ASCII. Ograniczenie wynika z braku możliwości łatwej obsługi znaków spoza ASCII w C++.
W PDF-ie widać, że różnice pomiędzy C++ w Visual Studio oraz Code::Blocks / Dev-C++ są minimalne:
obecne wersje Code::Blocks / Dev-C++ jeszcze nie pozwalają na używanie języka polskiego w nazwach zmiennych (nie jest to ograniczenie języka C++, a ograniczenie starych wersji kompilatora g++ użytego w tych projektach; przypuszczalnie następne wersje tych środowisk już nie będą miały takiego ograniczenia);
albo %S, albo %s; tak już jest...
Już po tak prostym zadaniu można się zorientować, że przetwarzania tekstów nie powinno się programować w C++ !
Odpowiedź
Wyjaśnienie
W przypadku języka C++ nie można było bezpośrednio użyć cin ponieważ czytałby on do pierwszej spacji.
Trzecia wersja programu w C++ wprawdzie jest najprostsza i działa wszędzie, ale w przypadku uruchomienia przy użyciu systemu Linux, Cygwin lub któregoś ze środowisk on-line (na przykład replit lub onlinegdb ) poprawne wyniki będą uzyskiwane tylko w przypadku ograniczenia się do znaków ASCII. Ograniczenie wynika z braku możliwości łatwej obsługi znaków spoza ASCII w C++.
W PDF-ie widać, że różnice pomiędzy C++ w Visual Studio oraz Code::Blocks / Dev-C++ są minimalne:
Już po tak prostym zadaniu można się zorientować, że przetwarzania tekstów nie powinno się programować w C++ !