Làm việc với chuỗi ký tự trong C++
Ghép hai xâu (6)
Nộp bàiPoint: 1
Đề bài: Nhập hai xâu A và B. Hãy in ra xâu sau khi ghép A với B.
Input: Hai dòng, dòng đầu là xâu A, dòng sau là xâu B.
Output: Một dòng là xâu A + B.
Ràng buộc: 1 ≤ len(A), len(B) ≤ 500
Input 01:
Hello
World
Output 01:
HelloWorld
Input 02:
Open
AI
Output 02:
OpenAI
Nhập xâu có khoảng trắng (getline)
Nộp bàiPoint: 1
Trong C++, lệnh cin thông thường sẽ dừng việc đọc dữ liệu khi gặp khoảng trắng. Để đọc được một chuỗi chứa nhiều từ (ví dụ: Họ và tên), ta phải sử dụng hàm getline(). Em hãy viết chương trình yêu cầu người dùng nhập vào họ tên đầy đủ của mình, sau đó in ra lời chào.
Đầu vào: Một dòng duy nhất chứa xâu ký tự S là họ và tên (có thể chứa khoảng trắng, độ dài không quá 100).
Đầu ra: In ra câu: Xin chao [S]
Ví dụ
Input:
Nguyen Van A
Output:
Xin chao Nguyen Van A
Nối chuỗi bằng append
Nộp bàiPoint: 1
Tương tự như toán tử +, phương thức append() cũng được sử dụng để nối chuỗi. Cho xâu S1 và xâu S2, em hãy sử dụng phương thức S1.append(S2) để ghép xâu S2 vào sau xâu S1. Để đơn giản, đề bài đã cho sẵn S1 có dấu cách ở cuối.
Đầu vào: Dòng 1 chứa xâu S1 (đã có sẵn khoảng trắng ở cuối, cần dùng getline để nhập). Dòng 2 chứa xâu S2.
Đầu ra: Xâu S1 sau khi đã được append xâu S2.
Ví dụ
Input:
Toi la
Hoc sinh
Output:
Toi la Hoc sinh
Tính chiều dài của xâu
Nộp bàiPoint: 1
Để biết một xâu ký tự dài bao nhiêu, ta dùng phương thức length() hoặc size(). Em hãy viết chương trình nhập vào một mật khẩu và in ra độ dài của mật khẩu đó để kiểm tra độ an toàn.
Đầu vào: Một xâu ký tự S (không chứa khoảng trắng, độ dài tối đa 100).
Đầu ra: Một số nguyên thể hiện độ dài của xâu S.
Ví dụ
Input:
HocCongNghe2026
Output:
15
Truy xuất ký tự đầu và cuối
Nộp bàiPoint: 1
Trong C++, các ký tự được đánh chỉ số từ 0. Ký tự đầu tiên là S[0] và ký tự cuối cùng là S[S.length() - 1]. Em hãy viết chương trình in ra ký tự đầu tiên và ký tự cuối cùng của một từ được nhập vào.
Đầu vào: Một xâu ký tự S dài ít nhất 2 ký tự và không chứa khoảng trắng.
Đầu ra: In ra ký tự đầu tiên và ký tự cuối cùng, cách nhau bởi một khoảng trắng.
Ví dụ
Input:
Programming
Output:
P g
Thay đổi ký tự trong xâu
Nộp bàiPoint: 1
Ta có thể thay đổi một ký tự tại một vị trí bất kỳ bằng cách gán giá trị mới cho nó, ví dụ S[0] = 'a'. Em được cấp một xâu S bị sai chính tả ở chữ cái đầu tiên. Hãy thay thế chữ cái đầu tiên thành chữ 'H' in hoa và in ra xâu kết quả.
Đầu vào: Một xâu S chứa ít nhất 1 ký tự.
Đầu ra: Xâu S sau khi đã được sửa ký tự đầu tiên thành 'H'.
Ví dụ
Input:
hello
Output:
Hello
Sử dụng phương thức at
Nộp bàiPoint: 1
Ngoài cách dùng dấu ngoặc vuông [], ta có thể dùng phương thức at() để truy cập ký tự an toàn hơn. Em hãy nhập vào một xâu S, sử dụng phương thức at() để lấy ra ký tự thứ 3 (tức là chỉ số 2) của xâu S.
Đầu vào: Một xâu S dài ít nhất 5 ký tự.
Đầu ra: Ký tự nằm ở vị trí chỉ số 2 của xâu.
Ví dụ
Input:
Computer
Output:
m
Sử dụng ký tự thoát
Nộp bàiPoint: 1
Để in ra dấu nháy kép bên trong một xâu, ta phải dùng dấu gạch chéo ngược \ đi kèm với nháy kép. Em không cần nhập dữ liệu vào, hãy in ra đúng nguyên văn câu trích dẫn sau: Nguoi do noi "Xin chao" voi toi.
Đầu vào: Không có.
Đầu ra: In ra đúng nguyên văn câu: Nguoi do noi "Xin chao" voi toi.
Ví dụ
Output:
Nguoi do noi "Xin chao" voi toi.
Thêm ký tự vào cuối
Nộp bàiPoint: 1
Phương thức pushback() giúp thêm đúng 1 ký tự (chứ không phải 1 xâu) vào cuối xâu hiện tại. Cho xâu S và ký tự C. Hãy dùng pushback để thêm C vào cuối S.
Đầu vào: Dòng 1 là xâu S. Dòng 2 là ký tự C. (Lưu ý xử lý trôi lệnh nếu cần).
Đầu ra: Xâu S sau khi được thêm ký tự.
Ví dụ
Input:
HocCongNgh
e
Output:
HocCongNghe
Xóa ký tự cuối pop_back
Nộp bàiPoint: 1
Phương thức popback() dùng để xóa đi 1 ký tự nằm ở cuối cùng của xâu. Cho một xâu S bị dư thừa một ký tự ở cuối. Em hãy dùng popback để xóa nó đi.
Đầu vào: Một xâu S dài ít nhất 2 ký tự.
Đầu ra: Xâu kết quả sau khi đã bị xóa ký tự cuối.
Ví dụ
Input:
Applex
Output:
Apple
Chèn vào vị trí bất kỳ
Nộp bàiPoint: 1
Phương thức insert(index, t) giúp chèn xâu t vào vị trí index của xâu hiện tại. Cho xâu S = "Hoc Nghe" và xâu T = "Cong ". Em hãy dùng lệnh insert để chèn xâu T vào vị trí chỉ số 4 của xâu S. (Lưu ý: chỉ in kết quả, không cần nhập S và T).
Đầu vào: Không có.
Đầu ra: In ra xâu S sau khi chèn.
Ví dụ
Output:
Hoc Cong Nghe
Xóa từ chỉ số đến cuối
Nộp bàiPoint: 1
Phương thức erase(pos) giúp xóa tất cả các ký tự từ vị trí pos cho đến khi kết thúc xâu. Nhập vào xâu S và số nguyên pos. Hãy xóa phần dư thừa và in ra xâu kết quả.
Đầu vào: Dòng 1 chứa xâu S. Dòng 2 chứa số nguyên pos. (Chú ý: Nên nhập số trước, xâu sau rồi xóa bộ nhớ đệm, hoặc dùng cin cho tất cả nếu không có khoảng trắng).
Đầu ra: Xâu sau khi bị xóa.
Ví dụ
Input:
HocCongNgheDotCom
11
Output:
HocCongNghe
Xóa 1 đoạn trong xâu
Nộp bàiPoint: 1
Phương thức erase(pos, n) giúp xóa n ký tự bắt đầu từ vị trí pos. Cho xâu S, vị trí xóa pos và số lượng ký tự cần xóa n. Hãy in ra xâu sau khi bị cắt bỏ.
Đầu vào: Dòng 1 chứa xâu S. Dòng 2 chứa 2 số nguyên pos và n cách nhau 1 khoảng trắng.
Đầu ra: Xâu S sau khi thực hiện lệnh xóa.
Ví dụ
Input:
Lap123trinh
3 3
Output:
Laptrinh
Lấy xâu con
Nộp bàiPoint: 1
Phương thức substr(pos, n) trả về một xâu con gồm n ký tự bắt đầu từ vị trí pos. Em hãy nhập vào ngày tháng năm sinh định dạng DD/MM/YYYY. Dùng substr để trích xuất ra 4 ký tự năm sinh bắt đầu từ chỉ số 6.
Đầu vào: Xâu S định dạng DD/MM/YYYY.
Đầu ra: Năm sinh được trích xuất.
Ví dụ
Input:
20/11/2009
Output:
2009
Tìm kiếm xâu con
Nộp bàiPoint: 1
Phương thức find(s1) sẽ trả về chỉ số đầu tiên mà xâu s1 xuất hiện trong xâu mẹ. Cho xâu S và xâu con s1. Hãy sử dụng hàm find để tìm vị trí của s1 trong S. Để tránh lỗi kiểu dữ liệu khi không tìm thấy (string::npos), em hãy dùng lệnh if để kiểm tra. Nếu giá trị trả về bằng string::npos thì in ra -1, ngược lại in ra chỉ số tìm được.
Đầu vào: Dòng 1 là xâu S. Dòng 2 là xâu con s1.
Đầu ra: Vị trí chỉ số đầu tiên của s1 trong S, hoặc -1 nếu không có.
Ví dụ
Input:
Hoc Cong Nghe
Cong
Output:
4