Strona startowa Ludzie pragną czasami się rozstawać, żeby móc tęsknić, czekać i cieszyć się z powrotem.wierzchni Film wprowadzający pojęcia: film walca Podpo- ‰ Pc – pola całkowitego; wiedź – ‰ Pp –...Regresing - uzdrawianie stosunku do przeszłości (DL,LŻ) Regresing, to technika polegająca na wprowadzeniu się w stan regresywny umożliwiający dotarcie do...Zapytałem Lenny'ego, dlaczego wprowadzili z Cheryl takie surowe zasady, a on odparł: „Rzecz nie w tym, jakie są te zasady, lecz w tym, że w ogóle są”... WPROWADŹ KLUCZ Patrząc na pulsujące słowa, zrozumiała cały plan – wirus, klucz, pierścień, pomysł szantażu...swoich najlepszych uczniów, wprowadzać ich w tajniki nauk ścisłych, w świat literatur starożytnych i nowożytnych, w to wszystko, co zwykle jest udziałem...Tymczasem spisek oligarchiczny, zmierzajcy do wprowadzenia takicherzdw na Samos, zakoczy si niepowodzeniem...Ale w takim razie co jest prawdziwe? By odpowiedzieć na to pytanie, Platon wprowadził idee...MARS W ZNAKU WAGIPomyślnie aspektowany wskazuje na namiętną i kochliwą osobę, ulegającą silnie płci przeciwnej, która ciągnie jak magnes żelazo...Cztery proste kroki wiodą ku wykształceniu w sobie nawyku wytrwałości, a także wskazują, jak przezwyciężyć wszelkie negatywne i zniechęcające wpływy,...właściwą ze względu na miejsce wykonywania zawo- 3) udziału w czynnościach związanych z udzielaniem du, wskazując: świadczeń zdrowotnych;...
 

Ludzie pragną czasami się rozstawać, żeby móc tęsknić, czekać i cieszyć się z powrotem.

Problem jest z funkcją get(). Ta funkcja
odczytuje znak końca linii, ale go nie odrzuca, znak pozostaje w buforze. Aby
zaradzić naszemu problemowi korzystamy z funkcji ignore(). Ta funkcja
przyjmuje dwa parametry: pierwszy określa maksymalną ilość znaków do
pominięcia, drugi określa znak końcowy. W naszym zapisie funkcja ignore()
odrzuci do 255 znaków oraz znajduje znak końca łańcucha \0 i też go odrzuca.
Tego typu niedogodności w obsłudze napisów w stylu języka C mamy wiele.
Kolejny przykład ilustruje problemy związane ze stosowaniem funkcji
operujących na napisach.

Wydruk 7.3. Przykład użycia cin.getlin(), strcpy(), strcat()

#include<iostream>
#include <stdio.h>
#include <conio.h>
#include <string.h>

using namespace std;

int main()
{
char text[200];
char s1[80];
char s2[80];
cout << "wpisz tekst: ";
cin.getline(s1,79);
cout << "wpisz tekst: ";
cin.getline(s2,79) ;

strcpy(text,"\n ");
strcat(text,s1);
strcat(text,s2);
cout << text << endl;

getche();
return 0;
}


Wynikiem działania programu jest komunikat:

wpisz tekst: to jest
wpisz tekst: programowanie





to jest programowanie
192
7. Łańcuchy i klasa string
Jeżeli w programie nie będzie instrukcji:



strcpy(text,"\n ");

to otrzymamy wynik:

wpisz tekst: to jest
wpisz tekst: programowanie
debugHoo@to jest programowanie

Ewidentnie, ponownie wystąpił problem z obsługą napisów. W naszym
programie wprowadzamy napisy z klawiatury ( tablice s1 i s2) a następnie przy
pomocy funkcji strcat() łączymy te dwa napisy. Pierwsza wywoływana w tym
celu jest funkcja strcpy(), która kopiuje stałą tekstową na początek zmiennej
tekst. Gdybyśmy, jako pierwszą wywołali funkcje strcat(), wystąpiłby problem
(zależny od typu kompilatora). Umieszony w tej zmiennej znak przejścia do
nowej linii \n rozwiązuje problem.
Takich problemów, jaki tu zasygnalizowaliśmy jest znacznie więcej.
Opracowanie nowej koncepcji obsługi napisów w języku C++, jakim było
wprowadzenie klasy string, zdecydowanie uprościło programowanie z udziałem
łańcuchów znakowych.
7.3. Łańcuchy w stylu języka C++
Twórcy języka C++ zdając sobie sprawę z niedoskonałości obsługi tablic
znakowych w języku C, zaproponowali nową koncepcję przetwarzania
łańcuchów – stworzona została nowa klasa, klasa o nazwie string. Pamiętamy,
że klasa jest typem zdefiniowanym w programie lub bibliotece, co oznacza, że
praktycznie dysponujemy nowym typem, typem string. Oczywiście w
programie możemy wprowadzać i wykonywać żądane operacje na łańcuchach w
stylu C a także na łańcuchach w stylu C++. W celu programowania z użyciem
łańcuchów w stylu C++ należy włączyć plik nagłówkowy <string>. Plik
nagłówkowy o nazwie <string.h> umożliwia przetwarzanie łańcuchów „starego
typu”, to znaczy łańcuchów w stylu C.
Zmienne typu string można deklarować w zwykły sposób:



string a,b;

Jest to deklaracje dwóch zmiennych typu string. Gdy już zostały utworzone
zmienne typu string należy je zainicjalizować. Można to zrobić na kilka
sposobów:



string a,b;


a = ”to jest”;
b = ”programowanie;
Wprowadzenie do STL
193 Można połączyć deklarację z inicjalizacją:



string a = ”to jest”

Ponieważ mamy do czynienia z klasą, obiekt string można inicjalizować
konstruktorem:



string a ( ”to jest”);

Klasa string ma wiele metod i przeciążonych operatorów, co pozwala na
stosunkowo łatwe manipulowanie napisami w stylu języka C++. Podstawowe
operacje wykonywane na napisach ilustruje kolejny program.

Wydruk 7.4. Łańcuchy w stylu języka C++

#include<iostream>
#include <conio.h>
#include <string>

using namespace std;

int main()
{ string s1 ( " - to jest ");