89787

Работа со строками в С++

Лекция

Информатика, кибернетика и программирование

Для работы со строками в С++ можно использовать объекты класса string и функции по работе ними (подключите библиотеку string.h) или воспользоваться стандартным типом char.

Русский

2015-05-13

63.73 KB

9 чел.

Работа со строками в С++

Для работы со строками в С++ можно использовать объекты класса string и функции по работе ними (подключите библиотеку string.h) или воспользоваться стандартным типом char.

Класс string

string a;//описание строки а

   cin >>a; //ввод слова до пробела

   int i, l=a.size();//размер строки

cout<<"длина строки: "<<a<<"\n равна "<<l<< " или "<<a.length()<<endl;

//вывод всех символов строки

for (i=0;i<l;i++) cout<<a[i]<<endl;

Ввод строки с пробелом, используя string

//ввод и вывод всей строки вместе с пробелами до нажатия Enter

string line;

getline (cin, line);

cout << line << endl;

//внимание! перевод строки не считывается.

Ввод строки с пробелом, используя char

char c[100]; int i=0;

cin>>noskipws;//отключаем пропуск пробелов

do{

   std::cin>>c[i];

}while(c[i++]!=10); // ввод до нажатия клавиши Enter

/* }while(c[i++]!=‘.’); // ввод до точки */

c[i]='\0';

cout<<i-1<<'\n';//количество символов в строке

cout<<c;

//восстановить настройки «пропуск пробелов»

cin>>skipws;

cin>>c;//обычный ввод строки

cout<<c;//и вывод строки

Посимвольный ввод/вывод, используя потоковый ввод/вывод

int d;

while((d=cin.get())!=EOF) //подключите stdio.h для EOF

//до символа конца файла (ctrl+Z, Enter)

   cout.put(d);

int b;

while((b=cin.get())!=10)

//до символа конца строки

   cout.put(b);

Ввод только чисел, используя string

#include <sstream>

string mystr; float price=0; int quantity=0;

cout << "Enter price: "; getline (cin,mystr);

stringstream(mystr) >> price;

cout << "Enter quantity: "; getline (cin,mystr);

stringstream(mystr) >> quantity;

cout << "Total price: " << price*quantity << endl;

Перевод из строки в число, используя char и stdlib.h

char * szString = new char[17];  int i; szString = “0123456789";

i = atoi(szString);//alfa to integer

cout<<i<<‘\n’; delete szString;

char a[10]="12.34“; float f;

f=atof(a);//alfa to float

cout<<'\n'<<f;

long int k; k=atol(a);

cout<<'\n'<<k;

Перевод из строки в число, используя string и sstream.h

template <typename T> string toString(T val)

   {  ostringstream oss;

       oss<<val;  return oss.str(); }

string str;

int i;     cin>>i;  str = toString(i); cout<<str;

float f;   cin >>f; str = toString(f);cout<<str;

ostringstream oss; oss<<i; s=oss.str();

Перевод из числа в строку, используя char и stdlib.h

char * szString = new char[17];

int i = 1234567890;

itoa(i,szString,10);  //int to alfa

cout<<szString;

delete szString;

char a[10]; long int k;

cin>>i>>k;

itoa(i*10,a,10); cout<<'\n'<<a;

ltoa(k/4,a,10); cout<<'\n'<<a;

//перевод из float в char функции нет!

Перевод чисел в строку, используя string и sstream.h

template <typename T> string toString(T val)

   {  ostringstream oss;

       oss<<val;  return oss.str(); }

string str;

int i;     cin>>i;  str = toString(i); cout<<str;

float f;   cin >>f; str = toString(f);cout<<str;

ostringstream oss; oss<<i; s=oss.str();

Ввод времени и даты, используя char

char c; int mm, hh, ss, d, m, y;

cout<<“введите время по формату час:мин:сек -> ”;

cin >>hh>>c>>mm>>c>>ss;

cout<<hh<<‘-’<<mm<<‘-’<<ss<<endl;

cout<<“введите дату по формату день/месяц/год:”;

cin >>d>>c>>m>>c>>y;

cout<<d<<‘-’<<m<<‘-’<<y<<endl;

Вставка подстроки

//вставка подстроки с позиции 0

string a=“variable”;    

  a.insert(0,"const");

   cout<<a<<endl;

Слияние строк

//конкатенация (слияние) двух строк

   string a, b("moroz");

   a="oy, "+b+", "+b+"!";

   cout<<a<<endl;

Замена подстроки

//замена 2 символа на подстроку, начиная с 0 позиции

string a=“marka”;     

a.replace(0,2,"oh");

   cout<<a<<endl;

Копирование подстроки

//выделение подстроки из строки а, 

//начиная с 4 символа длиной 5

string a=“informatika”;    

cout<<a.substr(4,5)<<endl;

Удаление символа "o"

string a=“moloko”;    

int n;

   while((n=a.find("o"))!=-1){

     a.erase(n,1);

     cout<<n<<a<<endl;

   }

Обмен строк

string a=“mama, b=“papa”;

a.swap(b);

   cout<<"a="<<a<<endl;

   cout<<"b="<<b<<endl;

Образование новой строки

string a, s=“”;//пустая строка

cin >>a;

for (int i=0;i<a.size(); i++)

{

 if (a[i]<=‘9and a[i]>=‘0’) s=s+a[i];

}

s=s+’\0’;//добавим конец строки

cout<<s;//вывод только цифр

Вывод строк в файл 

#include <fstream.h>

string lines;

ofstream myfile ("example.txt");

if (myfile.is_open()) {

myfile << "This is a line.\n";

myfile << "This is another line.\n";

myfile.close(); }

else 

cout << "Unable to open file";

Ввод строк из файла 

#include <fstream.h>

ifstream myfile ("example.txt");

if (myfile.is_open()) {

while ( myfile.good() ) {

getline (myfile,lines);

cout << lines << endl; }

myfile.close(); }

else

cout << "Unable to open file";


 

А также другие работы, которые могут Вас заинтересовать

30769. Укрупнительная сборка конструкции. Классификация монтажа по степени укрупнения 14.69 KB
  Укрупнительную сборку конструкций выполняют: на заводеизготовителе когда разделение элементов на блоки вызвано условиями изготовления в целях лучшего использования оборудования или повышения производительности труда; на строительной площадке если целесообразно собрать монтажный блок из нескольких элементов до подъема и полнее использовать грузоподъемность монтажного механизма. Сборке подлежат: стальные фермы больших пролетов поступающие на монтаж в виде двух полуферм; железобетонные и стальные колонны разделенные по высоте на несколько...
30770. Приспособления для выверки и временного закрепления конструкций 14.96 KB
  Приспособления для выверки и временного закрепления конструкций. При монтаже стальных и железобетонных конструкций используют приспособления позволяющие временно удерживать установленный на место элемент и регулировать его положение при выверке и приведении в проектное положение. Одиночные приспособления предназначены для удержания одного элемента групповые одного элемента или нескольких. Расчалки гибкие из канатов монтажные приспособления работающие только на растяжение.
30771. Основные способы строповки конструкций при монтаже. Грузозахватные приспособления 14.25 KB
  Основные способы строповки конструкций при монтаже. Строповка конструкций. Строповкой называют захват конструкций канатом стропом подвешенным к крюку монтажного крана для подъема и установки их в проектное положение. Конструкции стропуют в местах указанных в проекте и обеспечивают подачу конструкций к месту установки в положении соответствующем проекту.
30772. Приспособления для рабочего места и безопасного ведения работ на высоте 15.33 KB
  Приспособления для рабочего места и безопасного ведения работ на высоте. К работам на высоте относятся работы при выполнении которых работник находится на расстоянии менее 2 м от неогражденных перепадов по высоте 13 м и более. Рабочие места и проходы к ним зона А расположенные на перекрытиях покрытиях на высоте более 13 м и на расстоянии менее 2 м от границы перепада по высоте должны быть ограждены предохранительными или страховочными защитными ограждениями а при расстоянии более 2м сигнальными ограждениями соответствующими...
30773. Монтаж конструкций со склада и с транспортных средств 16.96 KB
  Монтаж конструкций со склада и с транспортных средств. Метод монтажа в зависимости от организации подачи элементов на монтаж: А со склада Б с колёс Основным условием доставки конструкций транспортными средствами является комплектная и ритмичная их подача в заданной технологической последовательности строго по часовому расписанному по минутам графику непосредственно к месту установки. Монтаж конструкций с транспортных средств по сравнению с предварительной разгрузкой является наиболее экономичным так как сокращаются затраты на...
30774. Классификация методов монтажа в зависимости от последовательности установки элементов 14.82 KB
  Классификация методов монтажа в зависимости от последовательности установки элементов. При раздельном методе одноименные конструкции монтируют или демонтируют самостоятельными потоками совмещенными во времени. Данный метод монтажа и демонтажа рекомендуется при реконструкции пролетов значительной протяженности небольшой внутренней стесненности обеспечивающей развертывание потока при свободном проходе монтажного крана и главное независимости СМР по реконструкции от основной деятельности предприятия. Комплексный метод связан с...
30775. Классификация методов монтажа по степени ограничения свободы перемещения в пространстве 14.68 KB
  По степени ограничения свободы перемещения элементов: А свободный Б ограничено свободный В принудительный оснастка позволяет перемещаться только в 1 необходимом направлении Свободный монтаж при котором монтируемый элемент без какихлибо ограничений устанавливают в проектное положение при его свободном перемещении. Ограниченносвободный монтаж характеризуется тем что монтируемая конструкция устанавливается в направляющие упоры фиксаторы и другие приспособления частично ограничивающие свободу перемещения конструкции но приводящие к...
30776. Выбор самоходного стрелового крана 19.06 KB
  hо превышение монтажного горизонта над уровнем стоянки крана hз запас по высоте для обеспечения безопасности монтажа hэл высота монтируемого элемента hстр высота строповки м вылет стрелы А=сlе где расстояние от оси вращения крана до оси крепления стрелы; горизонтальная проекция стрелы длина стрелы L находится по теореме пифагора мы знаем два катета. Зная необходимые характеристики которыми должен обладать кран поднять необходимую тяжесть с некоторой длинной стрелы. Определяем фактические грузоподьёмность длину...
30777. Подбор башенного крана 16.38 KB
  Подбор башенного крана требуемая грузоподъёмность крана Qтр = Qэл Qстр Qосн т Qэл масса монтируемого элемента Qстр масса строповочного приспособления Qосн масса монтажной оснастки т. Высота подъёма крюка Hкр = hо hз hэл hстр м hо превышение монтажного горизонта над уровнем стоянки крана hз запас по высоте для обеспечения безопасности монтажа hэл высота монтируемого элемента hстр высота строповки м Расчёт вылета стрелы крана производят по формуле б = а 2 b c м где а ширина подкраннового пути b ...