Tạo bởi Trần Văn Điêp|
Lập Trình C

[Video] Bài tập ôn tập String - Lập trình C

🧩 Bài 1: Nhập vào chuỗi → In ra độ dài của chuỗi

🔹 Mục tiêu:

Hiểu cách nhập chuỗi và đếm số ký tự trong chuỗi (không tính ký tự '\0' – ký tự kết thúc chuỗi).

🔹 Hướng dẫn:

  • Dùng mảng ký tự để lưu chuỗi.

  • Sử dụng hàm scanf("%s", str) để nhập chuỗi (chưa dùng gets).

  • Duyệt chuỗi cho đến khi gặp ký tự '\0' để đếm.

🔹 Code mẫu:

#include <stdio.h> int main() { char str[100]; int i, length = 0; printf("Nhap vao chuoi: "); scanf("%s", str); // chỉ nhập đến khoảng trắng đầu tiên for(i = 0; str[i] != '\0'; i++) { length++; } printf("Do dai cua chuoi la: %d\n", length); return 0; }

🔹 Giải thích:

  • char str[100]; khai báo mảng ký tự tối đa 99 ký tự + 1 ký tự '\0'.

  • Vòng lặp for đếm ký tự đến khi gặp '\0'.

  • Không dùng thư viện <string.h> để học viên hiểu rõ cơ chế.


🧩 Bài 2: Nhập 2 chuỗi → Nối chuỗi s2 vào s1 → In ra độ dài của chuỗi s1 sau khi nối

🔹 Mục tiêu:

Hiểu cách nối chuỗi thủ công (không dùng strcat) và tính độ dài mới sau khi nối.

🔹 Hướng dẫn:

  • Nhập 2 chuỗi s1, s2.

  • Duyệt s1 để tìm vị trí kết thúc.

  • Gắn từng ký tự của s2 vào cuối s1.

  • Thêm '\0' kết thúc chuỗi.

  • Tính lại độ dài của chuỗi mới.

🔹 Code mẫu:

#include <stdio.h> int main() { char s1[200], s2[100]; int i = 0, j = 0; printf("Nhap chuoi s1: "); scanf("%s", s1); printf("Nhap chuoi s2: "); scanf("%s", s2); // Tìm độ dài s1 while(s1[i] != '\0') { i++; } // Nối s2 vào s1 while(s2[j] != '\0') { s1[i] = s2[j]; i++; j++; } s1[i] = '\0'; // Kết thúc chuỗi printf("Chuoi sau khi noi: %s\n", s1); printf("Do dai cua chuoi s1 sau khi noi: %d\n", i); return 0; }

🔹 Giải thích:

  • Vòng lặp đầu tiên tìm điểm cuối chuỗi s1.

  • Vòng lặp thứ hai sao chép từng ký tự của s2 sang s1.

  • Cuối cùng, thêm '\0' để chuỗi kết thúc hợp lệ.

  • Độ dài mới chính là giá trị của i.


🧩 Bài 3: Nhập chuỗi → In ra từng ký tự trên một dòng

🔹 Mục tiêu:

Hiểu cách duyệt qua từng phần tử trong chuỗi.

🔹 Hướng dẫn:

  • Nhập chuỗi vào mảng str.

  • Duyệt từ đầu đến khi gặp ký tự '\0'.

  • In từng ký tự ra màn hình trên dòng mới.

🔹 Code mẫu:

#include <stdio.h> int main() { char str[100]; int i = 0; printf("Nhap vao chuoi: "); scanf("%s", str); printf("Cac ky tu trong chuoi la:\n"); while(str[i] != '\0') { printf("%c\n", str[i]); i++; } return 0; }

🔹 Ví dụ chạy chương trình:

Nhap vao chuoi: gokisoft.com Cac ky tu trong chuoi la: g o k i s o f t . c o m

✅ Tổng kết kiến thức rút ra:

Qua 3 bài trên, học viên sẽ hiểu được:

  • Cách lưu trữ chuỗi trong C bằng mảng ký tự.

  • Nguyên lý hoạt động của ký tự kết thúc '\0'.

  • Cách đếm, nối, và duyệt chuỗi thủ công mà không dùng thư viện.

  • Tư duy duyệt mảng, làm quen với vòng lặp forwhile.


💡 Gợi ý nâng cao:

Nếu học viên muốn tiến xa hơn, có thể học:

  • Hàm trong thư viện <string.h> như strlen(), strcat(), strcpy(), strcmp().

  • Cách nhập chuỗi có khoảng trắng bằng fgets() hoặc gets() (khi học phần an toàn hơn).

  • Con trỏ chuỗi (char *ptr) và cấp phát động cho chuỗi.

Phản hồi từ học viên

5

Tổng 0 đánh giá

Đăng nhập để làm bài kiểm tra

Chưa có kết quả nào trước đó