Đếm khoảng trắng trong chuỗi C | Laptrinhcanban.com

HOME › >>

Đếm khoảng trắng trong chuỗi C

Trong ngôn ngữ lập trình C, việc đếm khoảng trắng trong chuỗi là một phần quan trọng của xử lý dữ liệu văn bản. Kỹ thuật này thường được sử dụng trong nhiều ứng dụng thực tế như đếm số từ trong một đoạn văn bản, chuẩn hóa dữ liệu đầu vào, hay phân tích cú pháp. Trong bài viết này, chúng ta sẽ tìm hiểu cách đếm khoảng trắng trong chuỗi trong ngôn ngữ C và cách áp dụng nó trong các tình huống thực tế.

Sử Dụng Vòng Lặp Để Đếm Khoảng Trắng

Một cách đơn giản để đếm khoảng trắng trong chuỗi trong ngôn ngữ C là sử dụng vòng lặp để duyệt qua từng ký tự trong chuỗi và kiểm tra xem ký tự đó có phải là khoảng trắng hay không. Dưới đây là một ví dụ về cách thực hiện điều này:

#include <stdio.h>

int demKhoangTrang(char *chuoi) {
int dem = 0;
while (*chuoi) {
if (*chuoi == ' ') {
dem++;
}
chuoi++;
}
return dem;
}

int main() {
char chuoi[] = "Đây là một ví dụ về đếm khoảng trắng trong chuỗi C";
int soKhoangTrang = demKhoangTrang(chuoi);

printf("Số khoảng trắng trong chuỗi: %d\n", soKhoangTrang);
return 0;
}

//Số khoảng trắng trong chuỗi: 11

Trong ví dụ này, chúng ta đã viết hàm demKhoangTrang để đếm số khoảng trắng trong chuỗi. Hàm này sử dụng một vòng lặp while để duyệt qua từng ký tự trong chuỗi và tăng biến dem lên mỗi khi gặp ký tự khoảng trắng.

Sử Dụng Hàm Thư Viện strchr Để Đếm Khoảng Trắng

Thư viện chuẩn C cung cấp hàm strchr, cho phép bạn tìm kiếm một ký tự cụ thể trong chuỗi. Bằng cách sử dụng hàm này, bạn có thể dễ dàng đếm số khoảng trắng trong chuỗi. Dưới đây là một ví dụ:

#include <stdio.h>
#include <string.h>

int demKhoangTrang(char *chuoi) {
int dem = 0;
while (1) {
chuoi = strchr(chuoi, ' ');
if (chuoi == NULL) {
break;
}
dem++;
chuoi++;
}
return dem;
}

int main() {
char chuoi[] = "Đây là một ví dụ về đếm khoảng trắng trong chuỗi C";
int soKhoangTrang = demKhoangTrang(chuoi);

printf("Số khoảng trắng trong chuỗi: %d\n", soKhoangTrang);
return 0;
}
//Số khoảng trắng trong chuỗi: 11

Trong ví dụ này, chúng ta sử dụng hàm strchr để tìm ký tự khoảng trắng trong chuỗi. Hàm này trả về một con trỏ đến ký tự đầu tiên được tìm thấy hoặc NULL nếu không tìm thấy. Chúng ta sử dụng một vòng lặp để duyệt qua toàn bộ chuỗi và đếm số khoảng trắng.

Sử Dụng Hàm Thư Viện strtok Để Đếm Khoảng Trắng

Hàm strtok có thể được sử dụng để tách chuỗi thành các “token” dựa trên một ký tự phân tách. Trong trường hợp này, chúng ta có thể sử dụng nó để tách chuỗi thành các phần được phân tách bởi khoảng trắng và sau đó đếm số lượng token. Dưới đây là một ví dụ:

#include <stdio.h>
#include <string.h>

int demKhoangTrang(char *chuoi) {
char *token;
int dem = 0;
token = strtok(chuoi, " ");

while (token != NULL) {
dem++;
token = strtok(NULL, " ");
}

return dem - 1; // Giảm đi 1 vì lần cuối cùng token sẽ là NULL
}

int main() {
char chuoi[] = "Đây là một ví dụ về đếm khoảng trắng trong chuỗi C";
int soKhoangTrang = demKhoangTrang(chuoi);

printf("Số khoảng trắng trong chuỗi: %d\n", soKhoangTrang);
return 0;
}

//Số khoảng trắng trong chuỗi: 11

Trong ví dụ này, chúng ta sử dụng hàm strtok để tách chuỗi thành các phần con bởi khoảng trắng và đếm số lượng token. Sau đó, để đảm bảo đếm đúng số khoảng trắng, chúng ta giảm đi 1 vì lần cuối cùng token sẽ là NULL.

Sử Dụng Hàm Thư Viện isspace Để Đếm Khoảng Trắng

Hàm isspace() trong C là một hàm có sẵn header file ctype.h, giúp chúng ta kiểm tra một ký tự có phải là khoảng trắng hay không.

Tuy nhiên bằng cách ứng dụng hàm isspace() ở trên thì chúng ta hoàn toàn có thể tự tạo ra một hàm đếm khoảng trắng trong chuỗi C.

Ý tưởng ở đây là tạo ra một vòng lặp và kiểm tra từng phần tử trong chuỗi C xem có phải là khoảng trắng không, và nếu là khoảng trắng thì đếm nó là xong.

Cụ thể chúng ta viết hàm đếm khoảng trắng trong chuỗi C như sau:

#include<stdio.h>
#include<ctype.h>
#include <string.h>

int main(void){
int n = 0;
char str[100] = "27 thang 8\t2021";
printf("%s\n",str);

const int len = strlen(str);

for(int i = 0; i < len; i++){
if(isspace(str[i])) n += 1;
}

printf("So khoang trang: %d\n",n);
return 0;
}

Kết quả:

27 thang 8      2021
So khoang trang: 3

Đếm Khoảng Trắng Trong Chuỗi Unicode

Khi bạn cần đếm khoảng trắng trong một chuỗi Unicode, bạn cần sử dụng thư viện hỗ trợ đa ngôn ngữ và mã hóa như ICU (International Components for Unicode). ICU cung cấp các hàm và công cụ mạnh mẽ để xử lý chuỗi Unicode một cách chính xác.

Kết Luận

Trên đây Kiyoshi đã hướng dẫn bạn cách đếm khoảng trắng trong chuỗi C rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.

Và hãy cùng tìm hiểu những kiến thức sâu hơn về C trong các bài học tiếp theo.

URL Link

https://laptrinhcanban.com/c/lap-trinh-c-co-ban/chuoi-string-trong-c/dem-khoang-trang-trong-chuoi-c/

Hãy chia sẻ và cùng lan tỏa kiến thức lập trình Nhật Bản tại Việt Nam!

HOME  › >>

Profile
きよしです!笑

Tác giả : Kiyoshi (Chis Thanh)

Kiyoshi là một cựu du học sinh tại Nhật Bản. Sau khi tốt nghiệp đại học Toyama năm 2017, Kiyoshi hiện đang làm BrSE tại Tokyo, Nhật Bản.