Trong bài viết này, chúng ta sẽ cùng tìm hiểu về các bài tập chuỗi trong ngôn ngữ lập trình C. Mình sẽ tổng hợp những bài tập kèm lời giải để bạn có thể tham khảo và rèn kỹ năng lập trình của mình. Hãy thử làm trước rồi so sánh với đáp án để nắm vững kiến thức hơn nhé.
Bài 1: Tính độ dài của chuỗi không sử dụng hàm có sẵn
#include int length(char str[]){ int i = 0; for(; str[i]; i++); return i; } int main(){ char str[100]; printf("Nhập chuỗi: "); gets(str); printf("Chiều dài chuỗi = %d", length(str)); }
Bài 2: Kiểm tra tính đối xứng của chuỗi
#include #include char isSymmetric(char s1[100]) { int i; for (i = 0; i strlen(s1) / 2; i++) { if (s1[i] != s1[strlen(s1) - 1 - i]) { return 0; } } return 1; } int main() { char s1[100]; printf("Nhập chuỗi: "); gets(s1); if (isSymmetric(s1) == 0) { printf("Chuỗi vừa nhập không phải chuỗi đối xứng"); } if (isSymmetric(s1) == 1) { printf("Chuỗi vừa nhập là chuỗi đối xứng"); } }
Bài 3: Đếm số lần xuất hiện của ký tự trong chuỗi
#include #include char count(char chuoi[100], char n) { int i, dem = 0; for (i = 0; i strlen(chuoi); i++) { if (chuoi[i] == n) { dem++; } } if (dem > 0) { printf("Ký tự %c xuất hiện %d lần trong chuỗi", n, dem); } if (dem == 0) { return 1; } } int main() { char chuoi[100], n; printf("Nhập chuỗi: "); gets(chuoi); printf("Chuỗi vừa nhập là: %s\n", chuoi); printf("Nhập vào ký tự cần đếm: "); scanf("%c", &n); if (count(chuoi, n) == 1) { printf("Ký tự %c không có trong chuỗi", n); } }
Bài 4: Chuyển đổi chuỗi thành chữ viết hoa, viết thường và viết hoa chữ cái đầu mỗi từ
#include #include void toLower(char s[]) { for (int i = 0; s[i] != '\0'; i++) { if (s[i] >= 'A' && s[i] = 'Z') { s[i] = s[i] + 32; } } } void toUpper(char s[]) { for (int i = 0; s[i] != '\0'; i++) { if (s[i] >= 'a' && s[i] = 'z') { s[i] = s[i] - 32; } } } void toTitle(char str[]) { for (int i = 0; str[i] != '\0'; i++) { if (str[i] >= 'A' && str[i] = 'Z') str[i] += 32; if (str[i - 1] == ' ' || i == 0) { if (str[i] >= 'a' && str[i] = 'z') str[i] = str[i] - 32; } } } int main() { char s[100]; printf("Nhập chuỗi: "); gets(s); //Chuyển thành chữ thường toLower(s); printf("Chuỗi chữ thường: %s", s); //Chuyển thành chữ hoa toUpper(s); printf("Chuỗi chữ hoa: %s", s); //Chuyển thành viết hoa chữ đầu mỗi từ toTitle(s); printf("Chuỗi viết hoa chữ cái đầu: %s", s); return 0; }
Bài 5: Nhập và hiển thị danh sách sinh viên
#include #include int main(){ char arr[1000][50]; int n; do{ printf("Nhập số lượng sinh viên: "); scanf("%d", &n); }while(n 1); // Nhập danh sách for(int i = 0; i n; i++){ printf("Tên sinh viên thứ %d: ", i+1); fflush(stdin); gets(arr[i]); } // Xuất danh sách for(int i = 0; i n; i++){ printf("Tên sinh viên thứ %d: %s\n", i+1, arr[i]); } }
Đó là những bài tập chuỗi trong ngôn ngữ lập trình C mà mình đã tổng hợp và cung cấp lời giải cho bạn. Hy vọng rằng qua việc làm các bài tập này, bạn đã nắm vững kiến thức về chuỗi trong ngôn ngữ C hơn. Hãy thực hành thường xuyên để trở thành một lập trình viên giỏi nhé!