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:
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:
Sau khi thực hiện:
c = '8' (char) ↓ string(1, c) ↓ "8" (string)
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)
int tuoi = 25;
string s = to_string(tuoi);
cout << s + " tuổi";Kết quả:
25 tuổi
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)
| Hàm | Chuyển từ | Chuyển thành |
|---|---|---|
| to_string() | int, float, double | string |
| stoi() | string | int |
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)
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))
| 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 |
Số (int)
|
to_string()
|
Chuỗi (string)
|
stoi()
|
Số (int)
Lý thuyết các hàm chuỗi trong c++, string, to_string() và stoi()