Tổng hợp một số hàm chuỗi trong C
Một số hàm chuỗi trong C
Ký tự ( character ) :
- Ví dụ : char ch , ch1 ;
ch = 'a' ; /* Ðúng : ký tự chữ */
ch1 = '1' /* đúng : ký tự số */
- Ví dụ 2 : scanf ( "%c", &ch ) ; /* gõ A và Enter */
printf ("%c", ch) ; /* In ra chữ A */
printf("%d", ch) ; /* In ra 65 là mã ASCII của A */
* Hàm dùng cho kiểu ký tự :
char ch ;
ch = getchar ( ) ; ( Nhập 1 ký tự từ bàn phímm sau khi ấn Enter và ký tự nhập vào không hiện lên màn hinh ).
putchar (ch) ; in ký tự nằm trong biến ch ra màn hình.
putch ("\n") ; đưa dấu nháy về đầu dòng.ch = getche ( ) ; Nhập 1 ksy tự từ bàn phím và ký tự nhập vào sẽ hiển thị trên màn hình.
Chuỗi ký tự :
Ngôn ngữ C quan niệm 1 chuỗi ký tự là một mãng ký tự kết thúc bằng ký tự NULL ('\0') mã ASCII là 0.
- Ví dụ : char s[10] L E V A N A '\0'
s[0] s[1 ] s[3] s[4] s[5] s[7] s[8]
- Muốn nhập chuỗi ta thường dùng hàm gets(s)
- Muốn in chuỗi ta thường dùng hàm puts(s) : in xong xuống dòng.
Một số hàm trên chuỗi :
Các hàm cơ bản trong thư viện string.h
a/ gets(s1) : nhập dữ liệu vào chuỗi s1.
b/ n = strlen(s1) : cho biết độ dài của chuỗi s1.
c/ n= strcmp (s1,s2) : so sánh 2 chuỗi s1,s2 ( so theo mã ASCII từng ký tự ).
+ nếu n>0 : s1> s2
n = 0 : s1=s2
n < 0 : s1<s2.
d/ strcpy ( đích , nguồn ) ; chép chuỗi nguồn vào chuỗi đích, gán chuỗi.
- Ví dụ : char [30] ;
Ten = "Kenh Dai Hoc. Com "; ( sai ).
strcpy ( ten , "Kenh Dai Hoc. Com ");
gets (ten ) : Nhập vào từ bàn phím.
e/ strcat (s1,s2) : nối s1 và s2 .
- Ví dụ : giá trị cảu s1 : " ABC" ; s2 : " ABE" => strcat(s1,s2 ) ; => " ABCABE";
f/ m = strncmp (s1, s2, n ) ; so sánh n ký tự đầu tiên của chuỗi s1 với s2.
- Ví dụ : m = strncmp ( s1, s2, 2 ) ; thì m = 0 do 2 ký tự đầu của chuỗi là :
+ s1 : "ABC" và s2 : " ABE" là giống nhau.
g/ strnpy ( s1, s2, n ) ; chép n phần tử đầu tiên của chuỗi s2 vào chuỗi s1.
- Ví dụ : strnpy ( s1, "xyz", 2 ) ;
Puts (s1); -ă " xyC".
h/ strncat ( s1,s2, n) ; nối n phần tử đầu tiên của s2 vào đuôi s1.
- Ví dụ : strncat ( s1 , "xyz", 2);
Puts(s1) ; => "ABCxy".
* Chú ý : + char s1[10], s2[4]
+ strcpy (s1,"ABCDE");
+ strcpy(s2,"ABCDE"); => "ABCD" ( do s[4] = "\0").
i/ Hàm strstr :
- char *p ;
p = strstr (s1,s2);
- Tìm xem chuỗi s2 có trong s1 hay không. Nếu có thì in ra cuỗi s1 tại vị trí đầu tiên mà nó thấy. Nếu không có thì in ra giá trị NULL.
- Ví dụ : s1: "abc abc ac"
s2 : "bc", s3 = "cd"
p= strstr (s1,s2);
puts (p) ; => " bc abc ac "
p = strstr ( s1, s3)
Ðoán thử puts(p) ; => p[(NULL)] .
k/ d= atoi ( chuỗi số ) ; chuyển chuỗi số thành int.
f = atof ( chuỗi số ) ; chuyển chuỗi số thành số thực( float ).
l = atol(chuỗi số ); chuyển chuỗi số thành long ( nguyên 4 byte).
- Ví dụ : char s[20] ;
Gets (s) ; nhập vào s từ bàn phím chuỗi " 123.45"
d=atoi(s) ; thì d = 123.
F = atof(s); thì f = 123.45
l/ toupper (ch) ; làm thay đổi ký tự ch thành chữ Hoa.
tolower(ch); làm thay đổi ký tự ch thành chữ thường.
* Chú ý :Muốn dùng các hàm về chuỗi phải khai báo đầu chương TRÌNH #INCLUDE <STRING.H>
Xem thêm: http://kenhdaihoc.com/forum/showthread.php?t=2806
Ký tự ( character ) :
- Ví dụ : char ch , ch1 ;
ch = 'a' ; /* Ðúng : ký tự chữ */
ch1 = '1' /* đúng : ký tự số */
- Ví dụ 2 : scanf ( "%c", &ch ) ; /* gõ A và Enter */
printf ("%c", ch) ; /* In ra chữ A */
printf("%d", ch) ; /* In ra 65 là mã ASCII của A */
* Hàm dùng cho kiểu ký tự :
char ch ;
ch = getchar ( ) ; ( Nhập 1 ký tự từ bàn phímm sau khi ấn Enter và ký tự nhập vào không hiện lên màn hinh ).
putchar (ch) ; in ký tự nằm trong biến ch ra màn hình.
putch ("\n") ; đưa dấu nháy về đầu dòng.ch = getche ( ) ; Nhập 1 ksy tự từ bàn phím và ký tự nhập vào sẽ hiển thị trên màn hình.
Chuỗi ký tự :
Ngôn ngữ C quan niệm 1 chuỗi ký tự là một mãng ký tự kết thúc bằng ký tự NULL ('\0') mã ASCII là 0.
- Ví dụ : char s[10] L E V A N A '\0'
s[0] s[1 ] s[3] s[4] s[5] s[7] s[8]
- Muốn nhập chuỗi ta thường dùng hàm gets(s)
- Muốn in chuỗi ta thường dùng hàm puts(s) : in xong xuống dòng.
Một số hàm trên chuỗi :
Các hàm cơ bản trong thư viện string.h
a/ gets(s1) : nhập dữ liệu vào chuỗi s1.
b/ n = strlen(s1) : cho biết độ dài của chuỗi s1.
c/ n= strcmp (s1,s2) : so sánh 2 chuỗi s1,s2 ( so theo mã ASCII từng ký tự ).
+ nếu n>0 : s1> s2
n = 0 : s1=s2
n < 0 : s1<s2.
d/ strcpy ( đích , nguồn ) ; chép chuỗi nguồn vào chuỗi đích, gán chuỗi.
- Ví dụ : char [30] ;
Ten = "Kenh Dai Hoc. Com "; ( sai ).
strcpy ( ten , "Kenh Dai Hoc. Com ");
gets (ten ) : Nhập vào từ bàn phím.
e/ strcat (s1,s2) : nối s1 và s2 .
- Ví dụ : giá trị cảu s1 : " ABC" ; s2 : " ABE" => strcat(s1,s2 ) ; => " ABCABE";
f/ m = strncmp (s1, s2, n ) ; so sánh n ký tự đầu tiên của chuỗi s1 với s2.
- Ví dụ : m = strncmp ( s1, s2, 2 ) ; thì m = 0 do 2 ký tự đầu của chuỗi là :
+ s1 : "ABC" và s2 : " ABE" là giống nhau.
g/ strnpy ( s1, s2, n ) ; chép n phần tử đầu tiên của chuỗi s2 vào chuỗi s1.
- Ví dụ : strnpy ( s1, "xyz", 2 ) ;
Puts (s1); -ă " xyC".
h/ strncat ( s1,s2, n) ; nối n phần tử đầu tiên của s2 vào đuôi s1.
- Ví dụ : strncat ( s1 , "xyz", 2);
Puts(s1) ; => "ABCxy".
* Chú ý : + char s1[10], s2[4]
+ strcpy (s1,"ABCDE");
+ strcpy(s2,"ABCDE"); => "ABCD" ( do s[4] = "\0").
i/ Hàm strstr :
- char *p ;
p = strstr (s1,s2);
- Tìm xem chuỗi s2 có trong s1 hay không. Nếu có thì in ra cuỗi s1 tại vị trí đầu tiên mà nó thấy. Nếu không có thì in ra giá trị NULL.
- Ví dụ : s1: "abc abc ac"
s2 : "bc", s3 = "cd"
p= strstr (s1,s2);
puts (p) ; => " bc abc ac "
p = strstr ( s1, s3)
Ðoán thử puts(p) ; => p[(NULL)] .
k/ d= atoi ( chuỗi số ) ; chuyển chuỗi số thành int.
f = atof ( chuỗi số ) ; chuyển chuỗi số thành số thực( float ).
l = atol(chuỗi số ); chuyển chuỗi số thành long ( nguyên 4 byte).
- Ví dụ : char s[20] ;
Gets (s) ; nhập vào s từ bàn phím chuỗi " 123.45"
d=atoi(s) ; thì d = 123.
F = atof(s); thì f = 123.45
l/ toupper (ch) ; làm thay đổi ký tự ch thành chữ Hoa.
tolower(ch); làm thay đổi ký tự ch thành chữ thường.
* Chú ý :Muốn dùng các hàm về chuỗi phải khai báo đầu chương TRÌNH #INCLUDE <STRING.H>
Xem thêm: http://kenhdaihoc.com/forum/showthread.php?t=2806
Đăng nhận xét