Bài giảng Ngôn ngữ lập trình C - Chương 7: Chuỗi ký tự

Khái niệm stdin • stdin là dòng vào chuẩn (bàn phím). Khi dữ liệu nhập từ bàn phím theo các lệnh scanf, gets, getchar, thì trước hết chúng được đưa vào stdin, sau đó lần lượt gán cho các biến, nếu còn thì vẫn lưu lại cho các lệnh nhập sau. Muốn xóa sạch 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 sạch stdin • gets(ten); • }

pdf10 trang | Chia sẻ: maiphuongtl | Lượt xem: 2105 | Lượt tải: 1download
Bạn đang xem nội dung tài liệu Bài giảng Ngôn ngữ lập trình C - Chương 7: Chuỗi ký tự, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
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ự Khởi tạo chuỗi • Ví dụ 2: • char s[10] = “Hello”; • khi đó 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 được tối đa 9 ký tự. • Cũng có thể dùng con trỏ kiểu char để khởi tạo một chuỗi. Khi đó trình biên dịch sẽ cấp phát một vùng nhớ đủ để lưu chuỗi bao gồm cả ký tự kết thúc chuỗi. • Ví dụ 3: • char *name = “John Smith”; • khi đó biến con trỏ name sẽ trỏ đến vùng nhớ gồm 11 byte có nội dung là chuỗi nói trên được tự động ghép thêm một 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 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() • { • char name[31]; • printf(“Cho biet ten cua ban:”); • gets(name); • puts(name); /*xuất chuỗi ra màn hình và chuyển con trỏ xuống đầu dòng tiếp theo*/ • getch(); • } Các hàm thao tác chuỗi • Các hàm sau được định nghĩa trong tập tin tiêu đề string.h  int strlen(char *s); • Trả về độ dài chuỗi ký tự s.  char *strcat(char *dest, char *src); • Ghép chuỗi src vào chuỗi dest và trả về con trỏ đến chuỗi dest. Chuỗi dest phải có đủ chỗ (kể cả 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 và trả về con trỏ đến chuỗi dest. Chuỗi 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”, • 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 là dòng vào chuẩn (bàn phím). Khi dữ liệu nhập từ bàn phím theo các lệnh scanf, gets, getchar, … thì trước hết chúng được đưa vào stdin, sau đó lần lượt gán cho các biến, nếu còn thì vẫn lưu lại cho các lệnh nhập sau. Muốn xóa sạch 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 sạch stdin • gets(ten); • }

Các file đính kèm theo tài liệu này:

  • pdfchuong_7_8186.pdf
Tài liệu liên quan