Функция |
Описание |
s.append(str, start, num)* s.append(C-cтрока, start, num)* |
Добавляет в конец строки snum символов из строки str, начиная с индекса start Добавляет в конец строки s первые num символов из С-строки, начиная с индекса start |
s.assign(str, start, num)* s.assign(C-строка, num) |
Присваивает строке snum символов из строки str, начиная с индекса start Присваивает строке s первые num символов С-строки (строки с завершающим нулем) |
s.compare(start,num,str)* |
Сравнивает со строкой snum символов строки str, начиная с индекса start. |
s.c_str() |
Преобразует строку s в С-строку |
Окончание табл. 1
Функция |
Описание |
s.erase(start, num)* |
Удаляет num символов из строки s, начиная с индекса start |
s.find(str,start)* s.find(sim, start)* s.find_first_of(str,start)* |
Ищет первое вхождение строки str в строку s, начиная с индекса start Ищет первое вхождение символа sim в строку s, начиная с индекса start Ищет первое вхождение любого символа строки str в строку s, начиная с индекса start |
s.insert(start,str) s.insert(start,str,start1, num) |
Вставляет в строку s, начиная с индекса start, строку str Вставляет в строку s, начиная с индекса start, num символов строки str, начиная с индекса start1 |
s.length() |
Возвращает длину строки |
s.push_back(sim) |
Добавляет символ sim в конец строки s |
s.replace(start,num,str) s.replace(start,orgNum,str, repStart, repNum,) |
Заменяет num символов строки s, начиная с индекса start, строкой str Заменяет orgNum символов в строке s, начиная с индекса start, repNum символами строки str, начиная с индекса repStart |
s.substr(start, num)* |
Возвращает num символов строки s, начиная с индекса start |
s.swap(str) |
Меняет местами содержимое строк s и str |
* По умолчанию start= 0,num – все символы строки str
Так как строки string являются обычными контейнерами STL, то они могут работать и с итераторами так же, как и рассмотренные ранее в работе № 2 контейнеры vector.
1. Для решения задач вариантов 12–15 необходимо с помощью функции c_str (табл. 2.1) преобразовать string-строку в С-строку и далее использовать табл. 2.
Таблица 2
функции проверки и преобразования символов языка
Функция |
Описание |
isdigit(intc) |
Возвращает значение не нуль, если с – цифра (0…9), и нуль в противном случае |
isspace(int c) |
Возвращает значение не нуль, если с – обобщенный пробел: символ пробела, символ табуляции, символ конца абзаца и другие, и нуль в противном случае |
isalpha(int c) |
Возвращаетзначение не нуль, если с – код буквы (A…Z, a….z), и нуль в противном случае |
isalnum(int c) |
Возвращает значение не нуль, если с – код буквы или циф-ры (A…Z, a….z, 0…9), и нуль в противном случае |
Пример 8
Дана строка из цифр и букв латинского алфавита. Вывести число четных и нечетных цифр.
#include <iostream>
#include <string>
using namespace std;
void main()
{
setlocale(LC_ALL,"rus_rus.1251");
int i,n,chet=0,nechet=0,m;
string s;
cout<<"Введите строку, состоящую из цифр и букв латинского алфавита\n";
cin>>s;
// Количество символов в строке
n =s.size();
cout<<"Количество символов в строке:"<<n<<endl;
for(i=0;i<n;i++)
{
m= s.c_str()[i];// Преобразует строку s в С-строку
// и возвращает код символа С-строки
if(m%2==0&&isdigit(m)!=0)chet++; // Если символ –
// цифра с четным кодом
if(m%2!=0&&isdigit(m)!=0) nechet++; // Если символ –
// цифра с нечетным кодом
}
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.