Hàm strcspn() trong C
Strcspn in C là gì? Nếu muốn tìm hiểu cách dùng strcspn trong C, mời bạn đọc bài viết dưới đây.
Hàm size_t strcspn(const char *str1, const char *str2) tính độ dài của đoạn ký tự của chuỗi str1 mà không chứa các ký tự trong str2.
Khai báo hàm strcspn() trong C
Dưới đây là phần khai báo cho strcspn() trong C:
size_t strcspn(const char *str1, const char *str2)
Tham số
str1 -- Đây là chuỗi ký tự để được quét.
str2 -- Chuỗi chứa một danh sách các ký tự để so khớp trong str1.
Trả về giá trị
Hàm này trả về số ký tự trong một đoạn chuỗi của chuỗi ban đầu str1 mà không có trong chuỗi str2.
Ví dụ
Chương trình C sau minh họa cách sử dụng của strcspn() trong C:
#include <stdio.h> #include <string.h> int main () { int len; const char str1[] = "ABCDEF4960910"; const char str2[] = "013"; len = strcspn(str1, str2); printf("Ky tu ket noi dau tien tai vi tri %d\n", len + 1); return(0); }
Biên dịch và chạy chương trình C trên sẽ cho kết quả:
![]()
Ví dụ dùng Strcspn() cho một game đố từ đơn giản
Luật chơi: Trò chơi này gồm 2 người, một người chơi ban đầu tạo ra một chuỗi và được yêu cầu tạo ra một chuỗi có số ký tự không trùng nhau. Sau 1 vòng, người chơi tạo ra chuỗi có nhiều ký tự không trùng nhau nhất sẽ thắng.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int score1 = 0, score2 = 0, k = 0, sizen = 0, size = 0;
// khởi tạo chuỗi Round1
char player1[] = "geeks";
char play2[] = "";
while (1) {
// tạo ký tự ngẫu nhiên
char randoml = 'a' + (random() % 26);
play2[k++] = randoml;
size = strcspn(play2, player1);
if (size == sizen) {
// nếu ký tự hiện tại là break
score2 = size;
break;
}
else {
sizen = size;
}
}
// khởi tạo chuỗi Round2
const char player2[] = "geeks";
char play1[] = "";
k = 0, sizen = 0;
while (1) {
// tạo ký tự ngẫu nhiên
char randoml = 'a' + (random() % 26);
play1[k++] = randoml;
size = strcspn(play1, player2);
if (size == sizen) {
// nếu ký tự hiện tại, break
score1 = size;
break;
}
else {
sizen = size;
}
}
if (score1 > score2)
printf("Player 1 won!! \nScore: %d", score1);
else if (score2 > score1)
printf("Player 2 won!! \nScore: %d", score2);
else
printf("Match Drawn!! \nScore: %d", score1);
}Kết quả:
Match Drawn!!
Score: 2Bài trước: Hàm strncpy() trong C
Bài tiếp: Hàm strerror() trong C
Bạn nên đọc
Theo Nghị định 147/2024/ND-CP, bạn cần xác thực tài khoản trước khi sử dụng tính năng này. Chúng tôi sẽ gửi mã xác thực qua SMS hoặc Zalo tới số điện thoại mà bạn nhập dưới đây:
Cũ vẫn chất
-

Hướng dẫn đổi code Free Fire và code mới nhất tháng 11/2025
2 ngày 100+ -

Một vạn bằng bao nhiêu?
2 ngày 4 -

Code Thiếu Nữ Aline Chạy Đi mới nhất
2 ngày -

Sửa lỗi Full Disk 100% trên Windows với 14 thủ thuật sau
2 ngày -

Cách đổi tiếng Việt LOL VNG, đổi tiếng Việt LMHT VNG
2 ngày 14 -

Code Võ Hồn Đại Lục mới nhất, cập nhật liên tục 27/02/2026
2 ngày -

Arc, một trong những lựa chọn thay thế Chrome tốt nhất đã ngừng phát triển: Nên dùng gì thay thế?
2 ngày -

Chuột lang nước: Loài chuột khổng lồ nặng tới 68kg, ung dung giữa đàn cá sấu nhờ khả năng đặc biệt
2 ngày -

Tra cứu điểm VnEdu 2026 trên điện thoại, máy tính như nào?
2 ngày -

6 cách dễ nhất để thêm nhạc vào video trên máy tính
2 ngày
Học IT
Microsoft Word 2013
Microsoft Word 2007
Microsoft Excel 2019
Microsoft Excel 2016
Microsoft PowerPoint 2019
Google Sheets
Lập trình Scratch
Bootstrap
Prompt
Ô tô, Xe máy