string.h
nên trước khi dùng cần phải khai báo bằng từ khoá #include
.Các hàm thường được dùng phổ biến:
strlen
Cú pháp:
unsigned int strlen(const char *str);
Chức năng: Trả về độ dài của chuỗi. Độ dài chuỗi được xác định bởi ký tự null nên không bị nhầm lẫn với chiều dài mảng ký tự.
Ví dụ:
char str[100]="abcd";
Hàm
strlen(str)
sẽ trả về 4, trong khi toán tử sizeof(str)
trả về 100.Code C:
1 2 3 4 5 6 7 8 9 10 11 | //Ví dụ về hàm strlen #include<stdio.h> #include<string.h> void main() { char str[100]; printf ( "Nhập chuỗi: " ); gets (str); printf ( "Độ dài chuỗi: %d" , strlen (str)); } |
strcpy
Cú pháp:
char* strcpy(char *destination, const char *source);
Chức năng: Sao chép chuỗi
source
vào chuỗi destination
và trả về chuỗi destination
. Lưu ý chuỗi destination
phải có kích thước bằng hoặc lớn hơn chuỗi source
và chưa có giá trị nào.Code C:
1 2 3 4 5 6 7 8 9 10 11 | //Ví dụ về hàm strcpy #include<stdio.h> #include<string.h> void main() { char a[100], b[100], c[100] = "abcdefg" ; strcpy (a,c); strcpy (b, "12345" ); printf ( "a: %s\nb: %s\nc: %s\n" , a, b, c); } |
a: abcdefg
b: 12345
c: abcdefg
strncpy
Cú pháp:
char* strncpy(char *destination, const char *source, unsigned int num);
Chức năng: Sao chép từ chuỗi
source
vào chuỗi destination
số lượng num
ký tự đầu tiên trong chuỗi source
và trả về chuỗi destination
. Trong trường hợp số ký tự cần sao chép lớn hơn độ dài của chuỗi source
thì phần còn thiếu sẽ được lấp bằng ký tự null.Code C:
1 2 3 4 5 6 7 8 9 10 11 | //Ví dụ về hàm strncpy #include<stdio.h> #include<string.h> void main() { char a[100], b[100], c[100] = "abcdefg" ; strncpy (a,c,3); strncpy (b, "12345" ,7); printf ( "a: %s\nb: %s\nc: %s\n" , a, b, c); } |
a: abc
b: 12345
c: abcdefg
strcat
Cú pháp:
char* strcat(char *destination, const char *source);
Chức năng: Nối chuỗi
source
vào chuỗi destination
và trả về chuỗi destination
. Ký tự null của chuỗi destination
sẽ được ghi đè bằng ký tự đầu tiên của chuỗi source
.Code C:
1 2 3 4 5 6 7 8 9 10 11 12 | //Ví dụ về hàm strcat #include<stdio.h> #include<string.h> void main() { char a[100]; strcat (a, "We " ); strcat (a, "are " ); strcat (a, "programmer!" ); puts (a); } |
We are programmer!
strncat
Cú pháp:
char* strncat(char *destination, const char *source, unsigned int num);
Chức năng: Nối số lượng
num
ký tự từ chuỗi source
vào chuỗi destination
và trả về chuỗi destination
. Trong trường hợp số ký tự cần nối lớn hơn độ dài của chuỗi source
thì chỉ có nội dung trong chuỗi được nối qua.Code C:
1 2 3 4 5 6 7 8 9 10 | //Ví dụ về hàm strncat #include<stdio.h> #include<string.h> void main() { char a[100]; strcat (a, "We Are The World!" , 6); puts (a); } |
We Are
strcmp
Cú pháp:
int strcmp(const char *str1, const char *str2);
Chức năng: So sánh 2 chuỗi, trả về
-1
nếu str1
< str2
, trả về 0
nếu hai chuỗi bằng nhau, trả về 1
nếu str1
> str2
.Nguyên tắc so sánh: So sánh theo từng cặp kí tự từ đầu đến cuối theo mã ASCII, tại vị trí đầu tiên khác nhau, chuỗi chứa ký tự nhỏ hơn sẽ nhỏ hơn, nếu không khác nhau thì chuỗi ngắn hơn sẽ nhỏ hơn
Code C:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | //Ví dụ về hàm strcmp #include<stdio.h> #include<string.h> void main() { char a[8]= "abcDefg" , b[5]= "abcd" ; int c = strcmp (a,b); if (c == -1) printf ( "a < b" ); else if (c == 0) printf ( "a = b" ); else printf ( "a > b" ); } |
a < b
Vì
D
có mã ASCII bé hơn d
nên chuỗi chứa nó bé hơn.strlwr
Cú pháp:
char* strlwr(char *str);
Chức năng: In thường tất cả những ký tự in hoa trong chuỗi.
Code C:
1 2 3 4 5 6 7 8 9 | //Ví dụ về hàm strlwr #include<stdio.h> #include<string.h> void main() { char a[8]= "aBcDefg" ; printf ( "%s" , strlwr(a)); } |
abcdefg
strupr
Cú pháp:
char* strupr(char *str);
Chức năng: In hoa tất cả những ký tự in thường trong chuỗi.
Code C:
1 2 3 4 5 6 7 8 9 | //Ví dụ về hàm strupr #include<stdio.h> #include<string.h> void main() { char a[8]= "aBcDefg" ; printf ( "%s" , strupr(a)); } |
ABCDEFG
0 nhận xét:
Đăng nhận xét