String (chuỗi) là dãy các ký tự. Trong C++, chuỗi có thể định nghĩa theo hai cách:
- C-style strings: coi chuỗi như mảng ký tự.
- String Class trong C++ (từ thư viện
<string>).
Lớp string lưu chuỗi như mảng ký tự trong bộ nhớ nhưng hiển thị như đối tượng string cho người dùng. C++ cung cấp nhiều phương thức hỗ trợ lớp string, giúp thao tác hiệu quả.
Các ứng dụng phổ biến
1. Kiểm tra chuỗi chỉ chứa chữ số
bool charcheck(string str) {
int l = str.length();
for (int i = 0; i < l; i++) {
if (str.at(i) < '0' || str.at(i) > '9')
return false;
}
return true;
}
2. Thay thế khoảng trắng bằng %20 (URL encoding)
string replaceSpaceWith20(string str) {
string replaceby = "%20";
int n = 0;
while ((n = str.find(" ", n)) != string::npos) {
str.replace(n, 1, replaceby);
n += replaceby.length();
}
return str;
}
Code hoàn chỉnh
#include <bits/stdc++.h>
using namespace std;
bool charcheck(string str) {
for (char c : str) {
if (c < '0' || c > '9') return false;
}
return true;
}
string replaceSpaceWith20(string str) {
string replaceby = "%20";
size_t pos = 0;
while ((pos = str.find(" ", pos)) != string::npos) {
str.replace(pos, 1, replaceby);
pos += replaceby.length();
}
return str;
}
int main() {
string num = "3452i";
if (charcheck(num))
cout << "Chuoi chi chua chu so" << endl;
else
cout << "Chuoi chua ky tu khac" << endl;
string url = "google com in";
cout << replaceSpaceWith20(url) << endl;
return 0;
}
Kết quả
Chuoi chua ky tu khac google%20com%20in
Các phương thức hữu ích khác của string
length() / size()- độ dài chuỗiat(index)- truy cập ký tự với kiểm tra biênsubstr(pos, len)- lấy chuỗi confind(str)- tìm chuỗi conreplace(pos, len, str)- thay thếappend(str)- nối chuỗierase(pos, len)- xóa phần chuỗiclear()- xóa toàn bộc_str()- chuyển về C-style string (const char*)