Hàm chuỗi C
Hàm chuỗi
C cũng có nhiều hàm chuỗi hữu ích, có thể được sử dụng để thực hiện một số thao tác nhất định trên chuỗi.
Để sử dụng chúng, bạn phải đưa tệp tiêu đề <string.h>
vào chương trình của mình:
#include <string.h>
Chiều dài chuỗi
Ví dụ: để lấy độ dài của chuỗi, bạn có thể sử dụng hàm strlen()
:
Ví dụ
char alphabet[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
printf("%d",
strlen(alphabet));
Hãy tự mình thử » Trong chương Chuỗi , chúng ta đã sử dụng sizeof
để lấy kích thước của chuỗi/mảng. Lưu ý rằng sizeof
và strlen
hoạt động khác nhau, vì sizeof
cũng bao gồm ký tự \0
khi đếm:
Ví dụ
char alphabet[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
printf("%d",
strlen(alphabet)); // 26
printf("%d",
sizeof(alphabet)); // 27
Hãy tự mình thử » Điều quan trọng là bạn biết rằng sizeof
sẽ luôn trả về kích thước bộ nhớ (tính bằng byte) chứ không phải độ dài chuỗi thực tế:
Ví dụ
char alphabet[50] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
printf("%d",
strlen(alphabet)); // 26
printf("%d", sizeof(alphabet)); //
50
Hãy tự mình thử »Nối chuỗi
Để nối (kết hợp) hai chuỗi, bạn có thể sử dụng hàm strcat()
:
Ví dụ
char str1[20] = "Hello ";
char str2[] = "World!";
//
Concatenate
str2 to str1 (result is stored in str1)
strcat(str1, str2);
//
Print str1
printf("%s", str1);
Hãy tự mình thử » Lưu ý rằng kích thước của str1
phải đủ lớn để lưu trữ kết quả của hai chuỗi kết hợp (trong ví dụ của chúng tôi là 20).
Sao chép chuỗi
Để sao chép giá trị của chuỗi này sang chuỗi khác, bạn có thể sử dụng hàm strcpy()
:
Ví dụ
char str1[20] = "Hello World!";
char str2[20];
// Copy str1 to str2
strcpy(str2, str1);
// Print str2
printf("%s", str2);
Hãy tự mình thử » Lưu ý rằng kích thước của str2
phải đủ lớn để lưu trữ chuỗi đã sao chép (trong ví dụ của chúng tôi là 20).
So sánh chuỗi
Để so sánh hai chuỗi, bạn có thể sử dụng hàm strcmp()
.
Nó trả về 0
nếu hai chuỗi bằng nhau, nếu không thì giá trị khác 0:
Ví dụ
char str1[] = "Hello";
char str2[] = "Hello";
char str3[] = "Hi";
// Compare str1 and str2, and print the result
printf("%d\n",
strcmp(str1, str2)); // Returns 0 (the strings are equal)
//
Compare str1 and str3, and print the result
printf("%d\n", strcmp(str1, str3)); // Returns -4 (the strings are not
equal)
Hãy tự mình thử »