1. Trang chủ
  2. » Công Nghệ Thông Tin

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

10 226 0

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 10
Dung lượng 90,49 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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... Như vậy một mãng ký tự gồm n phần tử sẽ lưu được một chu

Trang 1

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

Trang 2

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ự

Trang 3

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)

Trang 4

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

Trang 5

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();

• }

Trang 6

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

Trang 7

 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;

Trang 8

• 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”);

Trang 9

• 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);

• }

Trang 10

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);

• }

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

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm