Bài giảng ngôn ngữ lập trình c chương 7 chuỗi ký tự

10 225 0
Bài giảng ngôn ngữ lập trình c   chương 7  chuỗi ký tự

Đang tải... (xem toàn văn)

Thông tin tài liệu

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ự xem mảng phần tử có kiểu char Ngoài ký hiệu kết thúc chuỗi quy ước ‘\0’ (ký tự có mã ASCII 0) đặt cuối chuỗi Như mãng ký tự gồm n phần tử lưu chuỗi tối đa n-1 ký tự Ví dụ 1: char s[31]; s mảng ký tự lưu chuỗi tối đa 30 ký tự • • • • • • • Khởi tạo chuỗi Ví dụ 2: char s[10] = “Hello”; s[0] = ‘H’, s[1] = ‘e’, s[2] = ‘l’, s[3] = ‘l’, s[4] = ‘o’, s[5] = ‘\0’ (kết thúc chuỗi) Chuỗi s chứa tối đa ký tự Cũng dùng trỏ kiểu char để khởi tạo chuỗi Khi trình biên dịch cấp phát vùng nhớ đủ để lưu chuỗi bao gồm ký tự kết thúc chuỗi Ví dụ 3: char *name = “John Smith”; biến trỏ name trỏ đến vùng nhớ gồm 11 byte có nội dung chuỗi nói tự động ghép thêm ký tự ‘\0’ (ký hiệu kết thúc chuỗi) • • • • • • • • • • 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 hàm scanf nhận vào liệu gặp khoảng trắng kết thúc • • • • • • • • • Hàm xuất chuỗi int *puts(char *s); Ví dụ 5: void main() { char name[31]; printf(“Cho biet ten cua ban:”); gets(name); puts(name); /*xuất chuỗi hình chuyển trỏ xuống đầu dòng tiếp theo*/ getch(); } •  •  •  •  •  • Các hàm thao tác chuỗi Các hàm sau định nghĩa tập tin tiêu đề string.h int strlen(char *s); Trả độ dài chuỗi ký tự s char *strcat(char *dest, char *src); Ghép chuỗi src vào chuỗi dest trả trỏ đến chuỗi dest Chuỗi dest phải có đủ chỗ (kể ký tự kết thúc chuỗi) để ghép thêm src vào char *strcpy(char *dest, char *src); chép chuỗi src chồng lên chuỗi dest trả trỏ đến chuỗi dest Chuỗi dest phải có đủ chỗ (kể ký tự kết thúc chuỗi) để chép src vào int strcmp(char *s1, char *s2); Trả giá trị âm s1 nhỏ s2; trả s1 s2; trả giá trị dương s1 lớn s2 char *strchr(char *s, char c); Tìm xem ký tự c có nằm chuỗi s hay không Nếu có, hàm trả trỏ đến vị trí chuỗi s mà chứa ký tự c; không hàm trả NULL  char *strstr(char *s1, char *s2); • Xác định xem chuỗi s2 có chuỗi chuỗi s1 hay không Nếu có, hàm trả trỏ đến vị trí chuỗi s1 mà chứa nội dung chuỗi ký tự s2; không hàm trả NULL • • • • • • • • • • • Ví dụ 6: void main() { char *string = “Borland International”, char *substring = “nation”; char *blank = “ “, *c = “C++”, *turbo = “Turbo”; char *str1 = “aaa”, *str2 = “aab”; char ch = ‘r’; char destination[25]; char *ptr; int result; • printf(“%d\n”, strlen(string)); • • • • strcpy(destination, turbo); strcat(destination, blank); strcat(destination, c); printf(“%s\n”, destination); • • • • • result = strcmp(str2, str1); 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); } • • • • • • • • • • • Khái niệm stdin stdin dòng vào chuẩn (bàn phím) Khi liệu nhập từ bàn phím theo lệnh scanf, gets, getchar, … trước hết chúng đưa vào stdin, sau gán cho biến, lưu lại cho lệnh nhập sau Muốn xóa stdin phải dùng lệnh fflush(stdin) Ví dụ 6: void main() { int tuoi; char ten[31]; printf(“Nhap tuôi:”); scanf(“%d”, &tuoi); printf(“Nhap ten:”); fflush(stdin); //xóa stdin gets(ten); } ... • Chuỗi ký tự Chuỗi ký tự xem mảng phần tử c kiểu char Ngoài ký hiệu kết th c chuỗi quy ư c ‘’ (ký tự c mã ASCII 0) đặt cuối chuỗi Như mãng ký tự gồm n phần tử lưu chuỗi tối đa n-1 ký tự. .. trỏ đến chuỗi dest Chuỗi dest phải c đủ chỗ (kể ký tự kết th c chuỗi) để ghép thêm src vào char *strcpy(char *dest, char *src); chép chuỗi src chồng lên chuỗi dest trả trỏ đến chuỗi dest Chuỗi. .. ‘’ (kết th c chuỗi) Chuỗi s chứa tối đa ký tự C ng dùng trỏ kiểu char để khởi tạo chuỗi Khi trình biên dịch c p phát vùng nhớ đủ để lưu chuỗi bao gồm ký tự kết th c chuỗi Ví dụ 3: char *name

Ngày đăng: 03/12/2015, 15:36

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan