C++ Рядки

2075 / C++ / Рядки

 

#include <string> 

string a = "Hello Bill Gates.";

a.length() // 17
a.size() // 17
tolower() // hello bill gates.
toupper() // HELLO BILL GATES.
a.find("Bill") // 6, -1 не знайшов, інколи 4294967295
a.find("Bill", 4) // 6, пошук з позиції 4
a.rfind("Bill") // 6 шукає з кінця, позиція як з початку
a.substr(6, 4) // Bill (позиція, скільки символів залишити)
a.insert(6, "Big ") // Hello Big Bill Gates. (позиція, рядок)
a.erase() // ""
a.erase(6, 5) // Hello Gates.
a[0] // H (char)
a[0] = 'Z' // Zello Bill Jobs.
a.at(0) // H (char)
a.at(0) = 'Z' // Zello Bill Jobs.
a.replace(11, 5, "Jobs") // Hello Bill Jobs. В кінці рядка теж вставляє
a.replace(a.find("Gates"), sizeof("Gates") - 1, "Jobs") // Hello Bill Jobs.





int capital = 100000000000; 
string b = "Bill" + to_string(capital) + "$";

string a = "abcdef";
string b = "123456";
a + " " + b // "abcdef 123456"
b + to_string(7) // "1234567"
a.append(b) // "abcdef123456"
a.append(b, 3, 1) // "abcdef4"
a.assign(b) // "123456"
a.assign(b, 3); // "456"
a.assign(b, 3, 1); // "4"
a.insert(3, b, 1, 3) // "abc234def"
a.replace(3, 1, b) // "abc123456ef"
a.replace(3, 1, b, 2, 3) // "abc123456ef"

string name;
cin >> name; // "Taras Shevchenko"
cout << name; // "Taras"
getline(cin, name); // "Taras Shevchenko"
cout << name; // "Taras Shevchenko"

string s1 = "012345";
cout << (s1 == "012345"); // 1
s1.compare("345") // -1
s1.compare("012345") // 0
s1.compare("0123456789") // 1

toupper('a') // 65 (A)
(char)toupper('a') // A
(char)tolower('A') // a
char c = 'a';
isupper(с) // 0
islower(c) // 1
isalnum(с) // мала літера - 2, велика літера - 1, цифра - 4

char* b = "2075.com.ua";
string(b); // у рядок string
"abc".c_str() // у рядок (char*)

strlen(a.c_str()) // довжина рядка до символу \0

s1 = "abcd";
s2 = "tak";
b = s1 > s2; // 0 (але s1.length() > s2.length() = 1 (ture))
b = s1 < s2; // 1 (порівнює букви по абетці)

string a = "ok1";
string b = "ok2";
cout << (a == b); // 0
cout << (a != b); // 1
cout << (a > b); // 0
cout << (a < b); // 1

 

Керуючі символи
\n – перехід на новий рядок
\t – горизонтальна табуляція
\v – вертикальна табуляція
\b – повернення назад на один символ
\r – повернення на початок рядка
\a – звуковий сигнал
\” – лапки
\? – знак питання
\\ – зворотний слеш


 
Перетворити літери на великий регістр без штатних функцій
 
#include <iostream>
#pragma warning(disable:4996)
using namespace std;

void Space(char*& res)
{
  for (int i = 0; res[i] != '\0'; i++)
  {
    if (res[i] >= 'a' && res[i] <= 'z')
    {
      res[i] = res[i] - 32;
    }
  }
}

int main()
{
  char temp[100];
  char* res;
  cout << "Enter string\n";
  cin.getline(temp, 100);
  res = new char[strlen(temp) + 1];
  strcpy(res, temp);
  cout << res << "\n";
  Space(res);
  cout << res << "\n";
  delete[] res;
}