[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ùnggets). -
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
s2vào cuốis1. -
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
s2sangs1. -
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
forvàwhile.
💡 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ặcgets()(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.