Alt linux Программирование на языке С++ в среде Qt Creator Е. Р. Алексеев, Г. Г. Злобин, Д. А. Костюк, О. В. Чеснокова, А. С. Чмыхало Москва alt linux 2015



Download 5,27 Mb.
Pdf ko'rish
bet104/193
Sana24.02.2022
Hajmi5,27 Mb.
#227496
1   ...   100   101   102   103   104   105   106   107   ...   193
Bog'liq
Book-qtC


Глава 8
Строки в языке C++
В главе дано общее представление о строках в C++. Описана их структура,
способы инициализации, возможности ввода-вывода, приведены примеры обра-
ботки строк и текстов.
8.1
Общие сведения о строках в C++
Строка
— последовательность символов. Для работы с символами в языке
C++
предусмотрен тип данных char. Если в выражении встречается одиночный
символ, он должен быть заключён в одинарные кавычки. При использовании в
выражениях строка заключается в двойные кавычки. Признаком конца строки
является нулевой символ ’\0’. В C++ строки можно описать с помощью массива
символов (массив элементов типа char), в массиве следует предусмотреть место
для хранения признака конца строки (’\0’).
Например,
char s [ 2 5 ] ; //Описана строка из 25 символов.
//Элемент s[25] предназначен для хранения символа конца строки.
char s [ 1 5 ] = "Привет" ; //Описана строка из 15 символов и ей присвоено значение.
//Определён массив из 3 строк по 30 байт в каждой.
char m[ 3 ] [ 3 0 ] = { "Пример " , "использования" , " строк" }
Для работы со строками можно использовать указатели (char *). Адрес пер-
вого символа будет начальным значением указателя.
Рассмотрим пример объявления и ввода строк.
#include 
using namespace s t d ;
i n t main ( )
{
char s 2 [ 2 5 ] , ∗ s3 , s 4 [ 3 0 ] ; //Описываем 3 строки, s3 — указатель.
cout<<"Введите строку:"<cout<<" s2 = " ; c i n >>s 2 ; //Ввод строки s2.
cout<<"Была введена строка:"<cout<<" s2 = "<s 3=s 4 ; //Запись в s3 адреса строки s4. Теперь в указателях s3 и s4 хранится один адрес.
cout<<"Введите строку:"<cout<<" s3 = " ; c i n >>s 3 ; //Ввод строки s3.
cout<<"Была введена строка:"<

8.2. Операции над строками
243
cout<<" s3 = "<cout<<"Сформирована новая строка:"<cout<<" s4 = "<return 0 ;
}
Если запустить эту программу на выполнение, то в консольном окне прило-
жения будет получен следующий результат.
Введите строку:
s2=Привет!
Была введена строка:
s2=Привет!
Введите строку:
s3=Программируем?
Была введена строка:
s3=Программируем?
Сформирована новая строка:
s4=Программируем?
Однако если во вводимых строках появятся пробелы, программа будет работать
не так, как ожидает пользователь:
Введите строку:
s2=Привет, Вася!
Была введена строка:
s2=Привет,
Введите строку:
s3=Была введена строка:
s3=Вася!
Сформирована новая строка:
s4=Вася!
Дело в том, что функция cin вводит строки до встретившегося пробела. Более
универсальной функцией является функция
cin.getline(char *s, int n);
она предназначена для ввода с клавиатуры строки s с пробелами, причём в
строке не должно быть более n символов. Например,
char s [ 2 5 ] ;
cout<<"Введите строку:"<cout<<" s2 = " ; c i n . g e t l i n e ( s , 2 5 ) ;
cout<<"Была введена строка:"<cout<<" s2 = "<Результат:
Введите строку:
s2=Привет, Вася!
Была введена строка:
s2=Привет, Вася!
8.2
Операции над строками
Строку можно обрабатывать как массив символов, используя алгоритмы об-
работки массивов, или с помощью специальных функций обработки строк, неко-
торые из которых приведены в таблицах 8.1–8.2.
© 2015 Алексеев Е. Р., Злобин Г. Г., Костюк Д. А., Чеснокова О. В., Чмыхало А. С.


244
Download 5,27 Mb.

Do'stlaringiz bilan baham:
1   ...   100   101   102   103   104   105   106   107   ...   193




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish