Chuỗi:
-Cách Khai báo chuỗi : char name[20];
-ý nghĩa: Khai báo chỗi name gồm 20 ký tự. Chuỗi kết thúc bằng ký tự null nên khai báo 20 chỉ có thể chứ 19 ký tự.-Sử dụng hàm nhập gets và xuất puts.
vd: gets(name) : là nhập vào chuỗi name. puts(name) là in ra chuỗi name;
Đối với hàm puts ký tự kết thúc chuỗi null (\0) được thay thế bằng ký tự newline (\n). Hàm gets và puts chỉ có 1 đối số và không sử dụng dạng thức trong nhập xuất dữ liệu cũng như in ra màn hình.
Khởi tạo chuỗi:
III . Một số hàm xử lý chuỗi
Các hàm này có trong string.h
1. Cộng chuỗi
- Hàm strcat()
Cú pháp:
char *strcat(char *des, const char *source )
Hàm này có tác dụng ghép chuỗi nguồn v ào chuỗi đích.
Ví dụ: Nhập vào họ lót và tên của một người, sau đó in cả họ và tên của họ lên màn hình.
#include<conio.h>
#include<stdio.h>
#include<string.h>
int main()
{
char HoLot[30], Ten[12] ;
printf("Nhap Ho Lot: ");gets(HoLot);
printf("Nhap Ten: ");gets(Ten);
strcat(HoLot,Ten); /* Ghep Ten vao HoLot*/
printf("Ho ten la: ");puts(HoLot);
getch();
return 0;
}
2. Xác định độ dài chuỗi
- Hàm strlen()
Cú pháp:
in t strlen(const char* s)
Ví dụ: Sử dụng hàm strlen xác định độ dài một chuỗi nhập từ bàn phím.
#include<conio.h>
#include<stdio.h>
#include<string.h>
int main()
{
char Chuoi[255];
int Dodai;
printf("Nhap chuoi: ");gets(Chuoi);
Dodai = strlen(Chuoi);
printf("Chuoi vua nhap: ");puts(Chuoi);
printf("Co do dai %d",Dodai);
92
getch();
return 0;
}
3. Đổi một ký tự thường thành ký tự hoa
- Hàm toupper(): Hàm toupper() (trong ctype.h) được dùng để chuyển đổi một ký tự
thườn g thành ký tự hoa.
Cú pháp:
char toupper(char c)
4. Đổi chuỗi chữ thường thành chuỗi chữ hoa
-Hàm strupr(): Hàm struppr() được dùng để chuyển đổi chuỗi chữ thường thành chuỗi
chữ hoa, kết quả trả về của hàm là một con trỏ chỉ đến địa chỉ chuỗi được chuyển đổi.
Cú pháp:
char *strupr(char *s)
Ví dụ: Vi ết chương trình nhập vào một chuỗi ký tự từ bàn phím. Sau đó sử dụng hàm
strupr() để chuyển đổi chúng thành chuỗi chữ hoa.
#include<conio.h>
#include<stdio.h>
#include<string.h>
int main()
{
char Chuoi[255],*s;
printf("Nhap chuoi: ");
gets(Chuoi);
s=strupr(Chuoi) ;
printf("Chuoi chu hoa: ");
puts(s);
getch();
return 0;
}
5. Đổi chuỗi chữ hoa thành chuỗi chữ thường
- Hàm strlwr(): Muốn chuyển đổi chuỗi chữ hoa thành chuỗi toàn chữ thường, ta sử
dụng hàm strlwr(), các tham số của hàm tương tự như hàm strupr().
Cú pháp:
char *strlwr(char *s)
93
6. Sao chép chuỗi
-Hàm strcpy(): Hàm này được dùng để sao chép toàn bộ nội dung của chuỗi nguồn v ào
chuỗi đích.
Cú pháp:
char *strcpy(char *Des, const char *Source)
Ví dụ: Vi ết chương trình cho phép chép toàn b ộ chuỗi nguồn v ào chuỗi đích.
#include<conio.h>
#include<stdio.h>
#include<string.h>
int main()
{
char Chuoi[255],s[255];
printf("Nhap chuoi: ");
gets(Chuoi);
strcpy(s,Chuoi);
printf("Chuoi dich: ");
puts(s);
getch();
return 0;
}
7. Sao chép một phần chuỗi
-Hàm strncpy(): Hàm này cho phép chép n ký tự đầu tiên của chuỗi nguồn sang chuỗi
đích.
Cú pháp:
char *strncpy(char *Des, const char *Source, size_t n)
8. Trích một phần chuỗi
-Hàm strchr(): Để trích một chuỗi con của một chuỗi ký tự bắt đầu từ một ký tự được
chỉ định trong chuỗi cho đến hết chuỗi, ta sử dụng hàm strchr().
Cú pháp :
char *strchr(const char *str, int c)
Lưu ý :
- Nếu ký tự đã chỉ định không có trongchuỗi, kết quả trả về là NULL ;
- Kết quả trả về của hàm là một con trỏ, con trỏ này chỉ đến ký tự c đư ợc tìm thấy đầu
tiên trong chuỗi str.
94
9. Tìm kiếm nội dung chuỗi
-Hàm strstr(): Hàm strstr() được sử dụng để tìm ki ếm sự xuất hiện đầu ti ên của chuỗi s2
trong chu ỗi s1.
Cú pháp:
char *strstr(const char *s1, const char *s2)
Kết quả trả về của hàm là một con trỏ chỉ đến phần tử đầu tiên của chuỗi s1 có chứa
chuỗi s2 hoặc giá trị NULL nếu chuỗi s2 không có trong chuỗi s1.
Ví dụ: Vi ết chương trình sử dụng hàm strstr() để lấy ra một phần của chuỗi gốc bắt đầu từ
chuỗi “hoc”.
#include<conio.h>
#include<stdio.h>
#include<string.h>
int main()
{
char Chuoi[255],*s;
printf("Nhap chuoi: ");
gets(Chuoi);
s=strstr(Chuoi,"hoc");
printf("Chuoi trich ra: ");
puts(s);
getch();
return 0;
}
10. So sánh chuỗi
-Hàm strcmp(): Để so sánh hai chuỗi theo từng ký tự trong bảng mã Ascii, ta có thể sử
dụng hàm strcmp().
Cú pháp:
int strcmp(const char *s1, const char *s2)
Hai chuỗi s1 và s2 được so sánh với nhau, kết quả trả về là một số nguyên (số n ày có
được bằng cách lấy ký tự của s1 trừ ký tự của s2 tại vị trí đầu tiên xảy ra sự khác nhau).
- Nếu kết quả là sốâm, chuỗi s1 nhỏ hơn chuỗi s2;
- Nếu kết quả là 0, hai chuỗi bằng nhau;
- Nếu kết quả là số dương, chuỗi s1 lớn hơn chuỗi s2.
95
11. So sánh chuỗi
-Hàm stricmp(): Hàm này thực hiện việc so sánh trong n ký tự đầu ti ên của 2 chuỗi s1
và s2, giữa chữ thường và chữ hoa không phân biệt.
Cú pháp:
int stricmp(const char *s1, const char *s2)
Kết quả trả về tương tự như kết quả trả về của hàm strcmp()
12. Khởi tạo chuỗi
-Hàm memset(): Hàm này được sử dụng để đặt n ký tự đầu tiên của chuỗi l à ký tự c.
Cú pháp:
memset(char *Des, int c, size_tn)
Đổi từ chuỗi ra số, hàm atoi(), atof(), atol() (trong stdlib.h): Để chuyển đổi chuỗi ra
số, ta sử dụng các hàm trên.
Cú pháp :
int atoi(const char *s) : chuy ển chuỗi thành số nguyên
long atol(const char *s) : chuy ển chuỗi thành số nguyên dài
floatatof(const char *s) : chuyển chuỗi thành số thực
Nếu chuyển đổi không thành công, kết quả trả về của các hàm là 0. Ngoài ra, thư viện
string.h còn hỗ trợ các hàm xử lý chuỗi khác, ta có thể đọc thêm trong phần trợ giúp.
Không có nhận xét nào:
Đăng nhận xét