So sánh các hàm string, to_string, stoi

Lý thuyết các hàm chuỗi trong c++, string, to_string() và stoi()

25

1. Hàm string() trong C++

Ngoài việc là một kiểu dữ liệu, string() còn là một hàm khởi tạo (constructor) dùng để tạo ra một chuỗi mới.


Cú pháp

string(tên_chuỗi);
string(số_lượng, ký_tự);


Ví dụ 1: Tạo chuỗi từ chuỗi khác

#include <iostream>
#include <string>
using namespace std;
int main()
{
    string s1 = "Hello";
    string s2 = string(s1);

    cout << s2;
}

Kết quả:

Hello

Ví dụ 2: Tạo chuỗi gồm nhiều ký tự giống nhau

#include <iostream>
#include <string>
using namespace std;

int main()
{
    string s = string(5, '*');

    cout << s;
}

Kết quả:

*****

Giải thích:

  • 5 là số lượng ký tự.
  • '*' là ký tự cần lặp lại.

Ví dụ 3: Tạo chuỗi từ một ký tự

char c = '8';
string s = string(1, c);
cout << s;

Kết quả:

8

Giải thích:

  • 1: tạo chuỗi có 1 ký tự.
  • c: ký tự cần đưa vào chuỗi.

Sau khi thực hiện:

c = '8'      (char)

↓

string(1, c)

↓

"8"          (string)

2. to_string() là gì?

to_string() dùng để chuyển số → chuỗi.

#include <iostream>
#include <string>
using namespace std;

int main()
{
    int so = 4312;

    string s = to_string(so);

    cout << s;
}

Kết quả:

4312

Quá trình:

4312 (int)
      |
to_string()
      |
"4312" (string)

Ví dụ

int tuoi = 25;
string s = to_string(tuoi);
cout << s + " tuổi";

Kết quả:

25 tuổi

3. stoi() là gì?

stoi là viết tắt của String TO Integer.

Dùng để chuyển chuỗi → số nguyên.

string s = "4312";
int x = stoi(s);
cout << x + 8;

Kết quả:

4320

Quá trình:

"4312" (string)
       |
     stoi()
       |
4312 (int)

4. So sánh to_string() và stoi()

Hàm Chuyển từ Chuyển thành
to_string() int, float, double string
stoi() string int

Ví dụ

int a = 123;
string s = to_string(a);
int b = stoi(s);
cout << a << endl;
cout << s << endl;
cout << b;

Kết quả:

123
123
123

Quá trình:

a (int)

↓

to_string()

↓

s (string)

↓

stoi()

↓

b (int)

5. Ví dụ tính tổng các chữ số

int so = 4312;
string s = to_string(so);

Sau khi chuyển:

so = 4312      (int)

↓

to_string()

↓

s = "4312"     (string)

Duyệt từng ký tự:

for(char c : s)
{
    cout << c << " ";
}

Kết quả:

4 3 1 2

Mỗi ký tự là kiểu char.

Muốn chuyển thành số có thể dùng:

c - '0'

Hoặc:

stoi(string(1, c))

6. Tổng kết

Thành phần Ý nghĩa Ví dụ
string Kiểu dữ liệu lưu chuỗi "Hello"
to_string(x) Chuyển số thành chuỗi 25 → "25"
stoi(s) Chuyển chuỗi thành số nguyên "25" → 25
string(1, c) Tạo chuỗi gồm 1 ký tự '8' → "8"
c - '0' Chuyển ký tự số thành số '8' → 8

Ghi nhớ

Số (int)
    |
to_string()
    |
Chuỗi (string)
    |
stoi()
    |
Số (int)
  • string: Kiểu dữ liệu lưu chuỗi.
  • to_string(): Chuyển số thành chuỗi.
  • stoi(): Chuyển chuỗi thành số nguyên.

 

Lý thuyết các hàm chuỗi trong c++, string, to_string() và stoi()