Ôn tập: các hàm xử lý chuỗi cơ bản
Thuộc phần Logic và luồng điều khiển trong hành trình C của Coddy. Bài học 19 trên 63.
Thử thách
DễViết một chương trình C xử lý các cặp từ và minh họa tất cả hàm xử lý chuỗi thiết yếu mà bạn đã học. Chương trình cần:
- Đọc một số nguyên
nbiểu thị số cặp từ cần xử lý - Với mỗi cặp từ:
- Đọc từ thứ nhất từ đầu vào
- Đọc từ thứ hai từ đầu vào
- Dùng
strlen()để tính và in độ dài của mỗi từ - Dùng
strcmp()để so sánh hai từ và in xem chúng giống hệt hay khác nhau - Tạo một chuỗi kết hợp bằng cách nối từ thứ nhất, một dấu cách và từ thứ hai bằng
strcpy()vàstrcat() - In chuỗi kết hợp
- Sau khi xử lý tất cả các cặp, tìm và in cặp tạo ra chuỗi kết hợp dài nhất
Nhớ thêm tiêu đề <string.h> để sử dụng các hàm xử lý chuỗi.
Đầu ra của bạn cần hiển thị kết quả theo định dạng sau:
Word 1: [word1] (Length: [length1])
Word 2: [word2] (Length: [length2])
Comparison: [identical/different]
Combined: [word1 word2]
Word 1: [word1] (Length: [length1])
Word 2: [word2] (Length: [length2])
Comparison: [identical/different]
Combined: [word1 word2]
...
Longest combined string: [longest_combined_string]Ví dụ, nếu đầu vào là:
3
hello
world
test
test
programming
languageĐầu ra của bạn sẽ là:
Word 1: hello (Length: 5)
Word 2: world (Length: 5)
Comparison: different
Combined: hello world
Word 1: test (Length: 4)
Word 2: test (Length: 4)
Comparison: identical
Combined: test test
Word 1: programming (Length: 11)
Word 2: language (Length: 8)
Comparison: different
Combined: programming language
Longest combined string: programming languageThử thách này kiểm tra khả năng kết hợp strlen() để tính độ dài, strcmp() để so sánh chuỗi và strcpy() cùng strcat() để nối chuỗi trong một chương trình tổng hợp xử lý nhiều cặp chuỗi.
Tự làm thử
#include <stdio.h>
#include <string.h>
int main() {
int n;
scanf("%d", &n);
char word1[100], word2[100];
char combined[200];
char longest_combined[200] = "";
// TODO: Viết code tại đây
// Xử lý từng cặp từ và tìm chuỗi (string) dài nhất tạo ra khi ghép chúng
return 0;
}Tất cả bài học trong Logic và luồng điều khiển
1Nền tảng về con trỏ
Con trỏ là gì?Khai báo con trỏToán tử lấy địa chỉ (&)Toán tử giải tham chiếu (*)Con trỏ NULLÔn tập: kiến thức cơ bản về con trỏ4Dự án: Công cụ xử lý văn bản đơn giản
Tổng quan dự ánĐếm ký tự2Con trỏ và mảng
Tên mảng dưới dạng con trỏPhần tử mảng và con trỏPhép toán con trỏSo sánh con trỏÔn tập: duyệt mảng bằng con trỏ5Con trỏ và hàm
Truyền theo giá trịTruyền con trỏ vào hàmSửa đổi biến qua con trỏVí dụ kinh điển: hoán đổiTruyền mảng vào hàmÔn tập: đối số con trỏ hàm3Mảng ký tự và chuỗi
Chuỗi dưới dạng mảng charKý tự kết thúc nullNhập chuỗi bằng scanfDùng strlen()Dùng strcpy()Dùng strcat()Dùng strcmp()Ôn tập: các hàm xử lý chuỗi cơ bản6Quản lý bộ nhớ
Bộ nhớ ngăn xếp và bộ nhớ heapCấp phát động với malloc()Dùng sizeof() để cấp phátKiểm tra lỗi cấp phátGiải phóng bộ nhớ với free()Cấp phát với calloc()Ôn tập: Mảng động9Dự án: Nhập thông tin liên hệ đơn giản
Định nghĩa struct ContactHàm tạo liên hệTự luyện tập: Trình biên dịch C online