#include <iostream> // stoi(stol, stoll)
using namespace std;
int main(){
string str = "12"; // "12"
int i = stoi(str); // string to int
long L = stol(str); // string to long
long long LL = stoll(str); // string to long long
float f = stof("3.14f"); // string to float
double d = stod("3.14"); // string to double
str = to_string(23); // int to string
str = to_string(3.14f); // float to string
str = to_string(3.14); // double to string
}
Сравнение "Сишных" строк (указатель на массив char оканчивающихся нулевым символом - значение 0)
int strcmp(str1, str2); // Возвращает 0 если строки равны , если не равны, то возвращает 1 или -1 в зависимости от того больше или меньше первый не совпавший символ в строке str1 и строке str2.
char buf[100] = "Hi Victor"; // Строка для сравнения
cout << strcmp(buf, "Hi Victor"); //0 Строки равны
cout << strcmp(buf, "Hi"); //1 Строки не равны (разная длина, разное содержимое)
cout << strcmp(buf, "Victor"); //-1 Строки не равны (разная длина, разное содержимое) V > H
Сравнение std::string делается встроенным в класс методом compare(). А также можно просто использовать операторы == или !=.
string str = "Hi Victor"; // Строка для сравнения
cout << str.compare("Hi Victor"); //0 Строки равны
cout << str.compare("Hi"); //7 Строки не равны
cout << str.compare("Victor"); //-1 Строки не равны
if(str == "Hi Victor"){ // Можно сравнивать std::string операторами == и !=
cout << "OK"; //OK
}
Встроенная в класс std::string функция find находит и возвращает индекс (size_t) первого вхождения подстроки в строку или string::npos если вхождение не найдено
string str = "Hi Victor"; // Строка в которой будем искать подстроку
cout << str.find("Hi Victor"); //0
cout << str.find("Hi"); //0
cout << str.find("Victor"); //3
cout << str.find("Gektor"); //18446744073709551615 == string::npos
size_t res = str.find("Gektor"); // Корректный поиск string::npos
if(res == string::npos){ // Положение строки равно "не нейдено"?
cout << "\nNot found";
}