Главная страница

Строки в с main()


Скачать 60.59 Kb.
НазваниеСтроки в с main()
Дата01.10.2022
Размер60.59 Kb.
Формат файлаpptx
Имя файла92318.pptx
ТипДокументы
#708486
СТРОКИ В С++
main()
{
string s;
...
}
Инициализация строк
Такая форма определения строки задает пустую строку:
string s;
Начальное значение строки можно задать прямо при объявлении:
string s = "Привет!";
Новое значение строки записывается с помощью оператора присваивания:
s = "Привет!";
Третья форма инициализирует объект типа string другим объектом того же типа:
string st3( st );
Строка st3 инициализируется строкой st.
Ввод и вывод строк
Для того, чтобы ввести из входного потока строку до первого пробела используется метод cin:
cin >> s;
Если нужно ввести строку, содержащую пробелы, применяется функция getline:
getline ( cin, s );
а вывод выполняется стандартным образом:
cout << s;
Такая запись означает, что метод
size применяется к объекту s типа string.
В данном случае size – это функция (метод), связанная с типом данных string.
Сравнение и копирование строк
  • Сравнение:
  • if ( st == st3 )
  • Скопировать одну строку в другую можно с помощью обычной операции присваивания:
  • st2 = st3; // копируем st3 в st2
Пример работы со строкой
#include
using namespace std;
main()
{
string s;
int i;
cout << "Введите строку: ";
getline ( cin, s );
for ( i = 0; i < s.size(); i++ )
if ( s[i] == 'а' )
s[i] = 'б';
cout << s;
}
Нумерация символов в строке начинается с нуля
Конкатенация строк
Для конкатенации строк используется операция сложения (+) или операция сложения с присваиванием (+=).
Пусть даны две строки:
string s1( "hello, " );
string s2( "world\n" );
Мы можем получить третью строку, состоящую из конкатенации первых двух, таким образом:
string s3 = s1 + s2;
Если же мы хотим добавить s2 в конец s1, мы должны написать:
s1 += s2;
МЕТОДЫ КЛАССА STRING
Выделение части строки – метод substr
s = "0123456789";
s1 = s.substr ( 3, 5 );
cout << s1 << endl;
Фрагмент копирует в строку s1 пять символов строки s (с 3-го по 7-й).
Этот метод принимает два параметра: номер начального символа и количество символов.
Если второй параметр при вызове substr не указан, метод возвращает все символы до конца строки. Например,
s = "0123456789";
s1 = s.substr ( 3 );
вернёт «3456789».
Удаление части строки - метод erase
s = "0123456789";
s.erase ( 3, 6 );
В строке s остаётся значение «0129» (удаляются 6 символов, начиная с 3-го).
Обратите внимание, что процедура erase изменяет строку.
Вставка символов в строку – метод insert
s = "0123456789";
s.insert ( 3, "ABC" );
Переменная s получит значение «012ABC3456789».
Поиск в строке - метод find
Эта функция возвращает номер найденного символа (номер первого символа подстроки) или –1, если найти нужный фрагмент не удалось.
фрагмент не удалось. Пример:
string s = "Здесь был Вася.";
int n;
n = s.find ( 'с' );
if ( n >= 0 )
cout << "Номер первого символа 'c': " << n << endl;
else cout << "Символ не найден " << endl;
Преобразование строки в число
В C++ нет методов преобразования строки в число. Но можно воспользоваться функциями языка С. В этом случае сначала необходимо преобразовать тип string в обычную (анси) строку, а потом использовать функции atoi и atof, прототип которых находится в stdlib.h: string s = "123.456";
int N;
double X;
N = atoi ( s.c_str() ); // N=123
X = atof ( s.c_str() ); // X = 123.456
Метод c_str() преобразует строку string в строку с завершающим нулем.
Преобразование происходит до первого символа, не относящегося к числу.
Ниже приведён код для разбора введённой с клавиатуры строки string на слова.
Можно доработать этот код, исключив знаки препинания, стоящие последними символами
строк vecstr[i], а также слова, не содержащие ни одного алфавитно-цифрового символа.
#include
#include
#include
#include
using namespace std;
int main() {
cout << "Enter the string: ";
string str; getline(cin, str);
vector vecstr; string word;
stringstream s(str);
while (s >> word)
vecstr.push_back(word);
int vsize = vecstr.size();
for (int i = 0; i < vsize; i++)
cout << vecstr[i] << endl;
cin.get();
return 0; }
http://blog.kislenko.net/show.php?id=1400
К отдельным символам объекта типа string, как и встроенного типа,
можно обращаться с помощью операции взятия индекса.
Вот, например, фрагмент кода, заменяющего все точки символами подчеркивания:
string str( "www.disney.com" ); int size = str.size();
for ( int i = 0; i < size; i++ )
if ( str[i] == '.' )
str[ i ] = '_';
cout << str;
  • Палиндромы — это слова или фраза слов, которая одинаково читается слева направо и справа налево.
  • #include
  • #include
  • #include
  • using namespace std;
  • int main()
  • {
  • string s1("dad");
  • string s2;
  • s2=s1;
  • reverse(s1.begin(), s1.end());
  • if (s1==s2) cout<<"ok";
  • else cout<<"not";
  • return 0;
  • }


написать администратору сайта