Вперед Зміст

Деякі функції для роботи з рядками

Довжина рядку

Довжина рядка — це кількість символів, які вона містить. Є дві ідентичні функції визначення довжини рядка: length і size. Наприклад:


#include <iostream>
#include <string>
using namespace std;
int main()
{
  string st;
  getline(cin,st);
  int n=st.length();  int k=st.size();
  cout<<n<<"  "<<k;
  return 0;
}

Ввід


Abcdef

Вивід


6  6

Пошук першого входження у рядок

Функція find повертає індекс першого входження підрядка в рядок. Наприклад:


#include <iostream>
#include <string>
using namespace std;
int main()
{
  string s1,s2;
  getline(cin,s1);  
  getline(cin,s2);
  int p=s1.find(s2);  
  cout<<p;
  return 0;
}

Ввід


abcdabcdabc
da

Вивід


3

Якщо пошук починається з якогось номера, використовується функція з двома параметрами. Наприклад:


  string s1,s2;
  getline(cin,s1);  
  getline(cin,s2);
  int p=s1.find(s2,5);  
  cout<<p;

Ввід


abcdabcdabc
da

Вивід


7

Якщо підрядок не знайдено, функція повертає число -1. Наприклад:


  string s1,s2;
  getline(cin,s1);  
  getline(cin,s2);
  int p=s1.find(s2,5);  
  cout<<p;

Ввід


abcdabcdabc
ox

Вивід


-1

Пошук останнього входження у рядок

Функція rfind повертає індекс останнього входження підрядка в рядок. Наприклад:


#include <iostream>
#include <string>
using namespace std;
int main()
{
  string s1,s2;
  getline(cin,s1);  
  getline(cin,s2);
  int p=s1.rfind(s2);  
  cout<<p;
  return 0;
}

Ввід


abcdabcdabc
da

Вивід


7

Копіювання частини рядка

Функція substr використовується для копіювання частини рядка в іншій рядок. У функції два параметри: індекс початку і кількість символів, що копіюються. Наприклад:


  string s1,s2;
  getline(cin,s1);
  s2=s1.substr(5,4);    
  cout<<s2;

Ввід


abcdabcdabc

Вивід


bcda

Видалення частини рядка

Метод erase використовується для видалення частини рядка. У функції два параметри: індекс початку та кількість символів, що видаляються. Наприклад:


  string s;
  getline(cin,s);
  s.erase(5,4);     
  cout<<s;

Ввід


abcdabcdabc

Вивід


abcdabc 

Вставлення підрядка в рядок

Метод insert використовується для вставки підрядка в рядок. У функції два параметри: індекс символу, перед яким виконується вставка і рядок, що вставляється. Наприклад:


  string s1,s2;
  getline(cin,s1); 
  getline(cin,s2);
  s1.insert(3,s2);      
  cout<<s1;

Ввід


abcdabcdabc
--

Вивід


abc--dabcdabc

Вперед Зміст