Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
5 Строки_лекция.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
157.7 Кб
Скачать

Преобразование чисел в строку и обратно

В жизни программиста часто возникают ситуации, когда необходимо преобразовать int в char и обратно.

Функции: double atof( char *string );

int atoi( char *string );

long atol( char *string );

long double _atold( char *string );

Как видно данные функции преобразуют символьную строку в число. Пример:

#include <iostream>

#include <stdlib.h>

using namespace std;

int main()

{

char *Str="123456";

int i;

i = atoi(Str);

cout<<i;

return 0;

}

Теперь наоборот, из число в символьную строку.

char *itoa( int value, char *string, int radix );

char *ltoa( long value, char *string, int radix);

char *ultoa( unsigned long value, char*string, int radix );

Пример:

#include <iostream.h>

#include <stdlib.h>

int main()

{

char * szString = new char[17];

int i = 1234567890;

itoa(i,szString,10);

cout<<szString;

return 0;

}

Задача 1. Дана строка символов, подсчитать сколько раз среди символов строки встречается буква x.

#include <iostream>

#include <string>

using namespace std;

int main()

{

int count=0;

string str;

cout<<"Enter string "; cin>>str;

for (int i=0;i<str.length(); i++)

if (str[i]=='x') ++count;

cout << "Numb char 'x': "<<count<<endl;

return 0;

}

Задача 2. Написать программу, которая получает от пользователя набор символов, исключая пробел, и удаляет из этого набора все вхождения символов S и s.

#include <iostream>

#include <string>

using namespace std;

int main()

{

int count=0;

string str;

cout<<"Enter string "; cin>>str;

for (int i=0;i<str.length(); i++)

{

if ((str[i]=='s')||(str[i]=='S')) {str.erase(i,1); i--;}

}

cout << str<<" "<<str.length();

return 0;

}

Задача 4. Написать программу, которая получает от пользователя набор символов, заменяет цифры знаком *.

Isdigit возвращает ненулевое значение если str[I] цифра ('0'-'9') (ctype.H)

#include <iostream>

#include <string>

#include <ctype.h>

using namespace std;

int main()

{

string str;

cout<<"Enter string "; cin>>str;

for(int i = 0; i < str.length(); ++i)

if (isdigit(str[i])) str[i] = '*';

cout << str;

return 0;

}

Задача 5. Дан текст. Определить количество предложений в тексте.

! Чтение введенной с клавиатуры строки getline(cin, s1);

Задача 6. Дано предложение. Определить количество слов в нем.

Задача 7. Дано предложение. Определить в нем слово максимальной длины.

Задача 8. Дан текст. Определить в нем самое короткое предложение.

Задача 9 Установить, является ли данное слово словом "перевертышем". Перевертыши (палиндромы) - это слова, которые читаются одинаково слева направо и справа налево: "поп", "довод", "доход", "потоп", "топот", "наган", "заказ", "казак", "шалаш". Многие любители словесных развлечений увлекаются составлением предложений, а то и маленьких рассказов или стихов, которые одинаково читаются в обе стороны. Вот несколько смешных фраз палиндромов:

"Аргентина манит негра",

"Торт с кофе не фокстрот",

"И любит Сева вестибюли",

"Удавы рвали лавры в аду",

"Я и ты будем в меду бытия",

"Я не мил - и не женили меня",

"Укроп наворован? Порку! А ремень - не мера",

"Лилипут сома на мосту пилил",

"Ах, у печали мерило, но лире мила чепуха!"

А вот двустишие Д. Авалиани, в котором безупречный гомеровский гекзаметр сочетается с прямым обращением к великому эллину:

"Море могуче. В тон ему,

шумен, отвечу Гомером:

Море, веру буди - ярок,

скор, я иду буревером..."

Палиндромы придумывали многие поэты. Забавный перевертыш "А роза упала на лапу Азора" принадлежит великому русскому поэту А. Фету, другой знаменитый поэт Г. Державин сказал: "Я иду с мечом, судия", а замечательный русский поэт В.Хлебников, кстати увлекавшийся математикой, написал целое стихотворение "Перевертень", где все строчки можно прочитать в обратном порядке.