CHƯƠNG 7: CHUỖI KÝ TỰ
Nội dung
Chuỗi ký tự
Khởi tạo chuỗi
Hàm nhập chuỗi
Hàm xuất chuỗi
Các hàm thao tác chuỗi
Khái niệm stdin
•
•
•
•
Chuỗi ký tự
Chuỗi ký tự được xem như là mảng các phần tử có kiểu char. Ngoài ra ký
hiệu kết thúc chuỗi được quy ước là ‘\0’ (ký tự có mã ASCII là 0) đặt ở
cuối chuỗi. Như vậy một mãng ký tự gồm n phần tử sẽ lưu được một chuỗi
tối đa n-1 ký tự.
Ví dụ 1:
char s[31];
s là mảng ký tự lưu được một chuỗi tối đa 30 ký tự
•
•
•
•
Hàm nhập chuỗi
char *gets(char *s);
Ví dụ 4:
void main()
{
char name[31];
printf(“Cho biet ten cua ban:”);
gets(name);
printf(“Chao bạn %s\n”, name);
getch();
}
Chú ý: Không nên sử dụng hàm scanf() để nhập chuỗi vì hàm scanf nhận
vào dữ liệu cho đến khi gặp khoảng trắng thì kết thúc.
•
•
•
•
•
•
•
•
•
Hàm xuất chuỗi
int *puts(char *s);
Ví dụ 5:
void main()
{
dest phải có đủ chỗ (kể cả ký tự kết thúc chuỗi) để chép src vào .
int strcmp(char *s1, char *s2);
Trả về giá trị âm nếu s1 nhỏ hơn s2; trả về 0 nếu s1 bằng s2; trả về giá trị
dương nếu s1 lớn hơn s2.
char *strchr(char *s, char c);
Tìm xem ký tự c có nằm trong chuỗi s hay không. Nếu có, hàm trả về con
trỏ đến vị trí đầu tiên của chuỗi s mà chứa ký tự c; nếu không hàm trả về
NULL.
char *strstr(char *s1, char *s2);
• Xác định xem chuỗi s2 có là chuỗi con của chuỗi s1 hay không. Nếu có,
hàm trả về con trỏ đến vị trí đầu tiên của chuỗi s1 mà chứa nội dung chuỗi
ký tự s2; nếu không hàm trả về NULL.
•
•
•
•
•
•
•
•
•
•
•
Ví dụ 6:
void main()
{
char *string = “Borland International”,
if(result > 0)
printf(“str2 is greater than str1\n”);
else
printf(“str2 is less than str1\n”);
•
•
•
•
•
•
•
•
•
strcpy(string, “This is a string”);
ptr = strchr(string, ch);
if(ptr != NULL)
printf(“The character %c is at position %d\n”, ch, ptr–
string);
else
printf(“The character was not found\n”);
ptr = strstr(string, substring);
printf(“The substring is: %s\n”, ptr);
}
•