Введення в std

Оскільки їх часто використовують в програмах, більшість сучасних мов програмування мають вбудований тип даних string. У C ++ є свій, але не як частина основного мови, а як частина стандартної бібліотеки.

std :: string

Щоб мати можливість використовувати рядки в C ++, спочатку потрібно підключити заголовний файл . Як тільки це буде зроблено, ми зможемо визначати змінні типу std :: string.

Результати пробного запуску цієї програми:

Enter your full name: Sasha Mak
Enter your age: Your name is Sasha and your age is Mak

Хм, це неправильно! Що ж трапилося? Виявляється, оператор >> вилучення рядка з cin повертає символи тільки до першого пробілу. Будь-які інші символи залишаються всередині cin, очікуючи наступного вилучення.

Тому, коли ми використовували оператор >> для вилучення рядка в змінну myName, тільки «Sasha» був витягнутий, «Mak» залишилося всередині std :: cin, очікуючи наступного вилучення. Коли ми використовували оператор >> знову, щоб витягти рядок в змінну myAge, ми отримали «Mak» замість «25». Якби ми зробити третій витяг, ми б отримали «25».

Використання std :: getline () для введення тексту

Щоб витягти повну рядок введення - краще використовувати функцію std :: getline (). Вона приймає два параметри: перший - std :: cin, другий - змінна string.

Ось та ж програма, що вище, але вже з використанням std :: getline ():

Sasha has 5 characters

Зверніть увагу, замість запиту довжини рядка як length (myName). ми пишемо myName.length ().

Функція запиту довжини рядка не є звичайною функцією, як ті, які ми використовували до цього моменту - це особливий тип функції std :: string, який називається функцією-членом. Ми розглянемо цей тип функцій і те, як створювати власні функції-члени, більш детально в наступних уроках.

Напишіть програму, яка запитує у користувача його ім'я-прізвище та вік. В результаті також вкажіть користувачеві, скільки років він прожив з кожної букви свого ім'я-прізвище (щоб було простіше, прогалини теж вважаються буквами).

Enter your full name: John Doe
Enter your age: 46
You've lived 5.75 years for each letter in your name.

Уточнення: Тобто, якщо вік 46, а ім'я «John Doe» (8 букв разом з пропуском), то 46 ділимо на 8. Отримуємо 5.75.

ТОП СТАТТІ

  • Урок 1. Введення в програмування
  • Яку мову програмування навчав перших? Як заробити?
  • Кращі паблік Вк для програмістів
  • Словник програміста. Сленг, який повинен знати кожен кодер
  • Що робити після установки Windows? встановлюємо програми
  • Як навчитися сліпому набору на клавіатурі?
  • Контакти