Слайд 1Работа со строками в С и С++
string или char
Слайд 2Класс string
string a;//описание строки а
cin >>a; //ввод
слова до пробела
int i, l=a.size();//размер строки
cout
равна "<
//вывод всех символов строки
for (i=0;i
Слайд 3Ввод строки с пробелом
//ввод и вывод всей строки вместе с
//пробелами до нажатия Enter
string line;
getline (cin, line);
cout
endl;
//внимание! перевод строки не считывается.
Слайд 4Ввод строки с пробелом
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<cout<//восстановить настройки «пропуск пробелов»
cin>>skipws;
cin>>c;//обычный ввод строки
cout<
Слайд 5Посимвольный ввод/вывод
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);
Слайд 6Ввод только чисел
#include
string mystr; float price=0; int quantity=0;
cout
> price;
cout
"Enter quantity: "; getline (cin,mystr);
stringstream(mystr) >> quantity;
cout << "Total price: " << price*quantity << endl;
Слайд 7Перевод из строки в число
sstream.h
template T fromString(const string&
s) { istringstream iss(s);
T res;
iss >> res; return res; }
cin>>str; int i = fromString(str); cout<cin>>str; float f =fromString(str); cout<
istringstream ins; ins.str(s); ins>>i;
double a; int b;
string s="74326.46238", d="123";
stringstream(d)>>b; stringstream(s)>>a;
Слайд 8Перевод из строки в число
stdlib.h
char * szString = new
char[17]; int i; szString = “0123456789";
i = atoi(szString);//alfa to
integer
cout<
char a[10]="12.34“; float f;
f=atof(a);//alfa to float
cout<<'\n'<
long int k; k=atol(a);
cout<<'\n'<
Слайд 9Перевод из числа в строку
stdlib.h
char * szString = new char[17];
int i = 1234567890;
itoa(i,szString,10); //int to alfa
cout
int k;
cin>>i>>k;
itoa(i*10,a,10); cout<<'\n'<
ltoa(k/4,a,10); cout<<'\n'<
Слайд 10Перевод чисел в строку
sstream.h
template string toString(T
val)
{ ostringstream oss;
oss
oss.str(); }
string str;
int i; cin>>i; str = toString(i); cout<float f; cin >>f; str = toString(f);cout<
ostringstream oss; oss<
Слайд 11Ввод времени и даты
char c; int mm, hh, ss, d,
m, y;
cout>hh>>c>>mm>>c>>ss;
cout
по формату день/месяц/год:”;
cin >>d>>c>>m>>c>>y;
cout<
Слайд 12Вставка подстроки
//вставка подстроки с позиции 0
string a=“variable”;
a.insert(0,"const");
cout
Слайд 13Слияние строк
//конкатенация (слияние) двух строк
string a, b("moroz");
a="oy, "+b+", "+b+"!";
cout
Слайд 14Замена подстроки
//замена 2 символа на подстроку, начиная с 0 позиции
string
a=“marka”;
a.replace(0,2,"oh");
cout
Слайд 15Копирование подстроки
//выделение подстроки из строки а,
//начиная с 4 символа
длиной 5
string a=“informatika”;
cout
Слайд 16Удаление символа "o"
string a=“moloko”;
int n;
while((n=a.find("o"))!=-1){
a.erase(n,1);
cout
Слайд 17Обмен строк
string a=“mama”, b=“papa”;
a.swap(b);
cout
Слайд 18Образование новой строки
string a, s=“”;//пустая строка
cin >>a;
for (int i=0;i
if (a[i]=‘0’) s=s+a[i];
}
s=s+’\0’;//добавим конец строки
cout
Слайд 19Вывод строк в файл
#include
string lines;
ofstream myfile
("example.txt");
if (myfile.is_open()) {
myfile
line.\n";
myfile << "This is another line.\n";
myfile.close(); }
else
cout << "Unable to open file";
Слайд 20Ввод строк из файла
#include
ifstream myfile ("example.txt");
if (myfile.is_open()) {
while
( myfile.good() ) {
getline (myfile,lines);
cout
endl; }
myfile.close(); }
else
cout << "Unable to open file";