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

Bài giảng Phương pháp lập trình - Chương 7: Chuỗi ký tự (2016)

34 22 0

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 34
Dung lượng 0,91 MB

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

Nội dung

Bài giảng Phương pháp lập trình - Chương 7: Chuỗi ký tự cung cấp cho người học các kiến thức: Kí tự, giới thiệu chuỗi, khai báo và khởi tạo chuỗi, nhập, xuất chuỗi, một số hàm thao tác trên chuỗi, mảng chuỗi, mảng con trỏ chuỗi. Mời các bạn cùng tham khảo nội dung chi tiết.

Trang 1

Chương 7

Trang 2

Nội dung trình bày

1. Kí tự

2. Giới thiệu chuỗi

Trang 3

1 Kí tự: Khai báo

mã ASCII của nó, do đó có thể viết:

ch = 97; thay cho ch='a';

Trang 4

1 Kí tự: Một số hàm (ctype.h)

int isalpha(int ch ) : hàm trả về số khác 0 nếu

ch là kí tự chữ cái, ngược lại hàm trả về 0

◦ Ví dụ: int i = isalpha(‘x’); // i!=0

int j = isalpha(‘1’); // j=0

int isdigit(int ch ): hàm trả về số khác 0

nếu ch là kí tự chữ số, ngược lại hàm trả về 0

◦ Ví dụ: int i = isalpha(‘x’); // i=0

int j = isalpha(‘1’); // j!=0

int isascii(int ch ): hàm trả về số khác 0 nếu

ch là một ký tự có mã ASCII <128

Trang 5

1 Kí tự: Một số hàm (ctype.h)

int isspace(int ch ): hàm trả về số khác 0 nếu

ch là kí tự khoảng trắng, ngược lại hàm trả về 0

◦ Ví dụ: int i = isspace(‘ ’); // i!=0

int j = isspace(‘x’); // j=0

int iscntrl(int ch ) : hàm trả về số khác 0

nếu ch là kí tự điều khiển, ngược lại hàm trả về 0

int isupper(int ch ) : hàm trả về số khác 0 nếu

ch là kí tự in hoa, ngược lại hàm trả về 0

◦ Ví dụ: int i = isupper(‘Y’); // i!=0

int j = isupper(‘y’); // j=0

Trang 6

1 Kí tự: Một số hàm (ctype.h)

int islower(int ch ) : hàm trả về số khác 0

nếu ch là kí tự in thường, ngược lại hàm trả về 0

◦ Ví dụ: int i = islower(‘Y’); // i=0

Trang 7

const int MAX=80;

for ( int i=0; i<=255; i++ )

Trang 8

Nội dung trình bày

1. Kí tự

2. Giới thiệu chuỗi

Trang 9

2 Giới thiệu chuỗi

tự null ('\0')

Ví dụ:

nháy đôi Ví dụ: "Hello"

Trang 10

Nội dung trình bày

1. Kí tự

2. Giới thiệu chuỗi

Trang 11

3 Khai báo và khởi tạo chuỗi

char Tên_chuỗi[ Số_kí_tự_tối_đa ];

char Tên_chuỗi[ Số_kí_tự_tối_đa ];

char* Tên_chuỗi;

char* Tên_chuỗi ;

Trang 12

3 Khai báo và khởi tạo chuỗi (tt)

định ta dùng cú pháp khai báo và khởi tạo mảng

◦ Ví dụ: char str[] = {'H', 'e', 'l', 'l', 'o', '\0'};

◦ Ví dụ: char str[] = "Hello";

char *str = "Hello";

char Tên_biến[ ] = "Hằng Chuỗi" ; char* Tên_biến = "Hằng Chuỗi" ; char Tên_biến [ ] = " Hằng Chuỗi " ;

char* Tên_biến = " Hằng Chuỗi " ;

Trang 13

3 Khai báo và khởi tạo chuỗi (tt)

name = " Thi No "; //LỖI

Lưu ý khi khai báo chuỗi và gán giá trị cho chuỗi

Trang 14

Nội dung trình bày

1. Kí tự

2. Giới thiệu chuỗi

Trang 15

4.1 Nhập chuỗi

Để nhập dữ liệu cho biến chuỗi, ta dùng hàm gets của thư viện stdio.h

◦ Hàm gets sẽ đọc các ký tự gõ từ bàn phím vào

char* gets( char* s );

char* gets ( char* s );

Trang 16

int puts(const char *s);

int puts (const char *s);

Trang 17

cout<<"Nhap vao 1 chuoi: ";

gets(str);

cout<<"\nChuoi da nhap la: ";

puts(str);

}

Trang 18

Nội dung trình bày

1. Kí tự

2. Giới thiệu chuỗi

Trang 19

5 Một số hàm trên chuỗi

Toán tử []: Truy xuất từng ký tự, vì chuỗi là một mảng nên có thể truy xuất từng phần tử

char name[] = "John Doe";

for ( int i=0; i<strlen(s); i++ )

xử_lý s[i]

19

Trang 20

cout<<" nhap chuoi 1: "; gets(str1); // str1=“abc”

cout<<" nhap chuoi 2: "; gets(str2); // str2=“xyz”

strcpy(str2, str1);

Trang 21

5 Một số hàm trên chuỗi (tt)

Sao chép n kí tự đầu tiên của chuỗi s2 vào s1

◦ Ví dụ:

char str1[10], str2[10];

cout<<" nhap chuoi 1: "; gets(str1); // str1=“abc”

cout<<" nhap chuoi 2: "; gets(str2); // str2=“xyz”

strncpy(str2, str1, 2);

Trang 22

5 Một số hàm trên chuỗi (tt)

strcat(char* s1, char* s2) : Nối chuỗi s2

vào cuối chuỗi s1

◦ Ví dụ:

char str1[10], str2[10];

cout<<" nhap chuoi 1: "; gets(str1); // str1=“abc”

cout<<" nhap chuoi 2: "; gets(str2); // str2=“xyz”

strcat(str1, str2);

Trang 23

5 Một số hàm trên chuỗi (tt)

Nối n kí tự đầu tiên của chuỗi s2 vào cuối chuỗi s1

◦ Ví dụ:

char str1[10], str2[10];

cout<<" nhap chuoi 1: "; gets(str1); // str1=“abc”

cout<<" nhap chuoi 2: "; gets(str2); // str2=“xyz”

strncat(str1, str2, 2);

Trang 24

char str1[20], str2[20]; int id;

cout<<“ Nhap chuoi 1: "; gets(str1);

cout<<“ Nhap chuoi 2: "; gets(str2);

id = strcmp(str1, str2);

if (id== 0 )

cout<<“ Hai chuoi bang nhau ";

else cout<<" Hai chuoi khac nhau ";

Trang 25

5 Một số hàm trên chuỗi (tt)

strncmp(char* s1 , char* s2 , int n ) :

Hàm so sánh n kí tự đầu tiên của chuỗi s1 với n ký

tự đầu tiên của chuỗi s2, hàm trả về:

 0 nếu s1=s2

 số dương nếu s1>s2

 số âm nếu s1<s2

◦ Ví dụ:

char s1[20], s2[20]; int id;

cout<<" Nhap chuoi 1: "; gets(s1);

cout<<" Nhap chuoi 2: "; gets(s2);

id = strncmp(s1, s2, 5);

if (id== 0 )

cout<<" Hai chuoi bang nhau ";

else cout<<" Hai chuoi khac nhau ";

Trang 26

5 Một số hàm trên chuỗi (tt)

strchr(char* s , char ch ) : Hàm tìm kí tự

ch có trong chuỗi s hay không, nếu có hàm trả về

con trỏ trỏ đến vị trí xuất hiện đầu tiên của ký tự

ch trong chuỗi s, nếu không có hàm trả về NULL

◦ Ví dụ:

char *p, h, s[20];

cout<<" nhap chuoi 1: "; gets(s);

cout<<" Nhap ki tu muon tim: "; cin>>h;

p = strchr(s, h);

if (p== NULL )

cout<<" Khong tim thay ";

else cout<<" Tim thay tai vi tri "<<(p-s);

Trang 27

5 Một số hàm trên chuỗi (tt)

s2 có trong s1 hay không, nếu có thì trả về con

trỏ trỏ đến vị trí xuất hiện đầu tiên của chuỗi s2

◦ Ví dụ:

char *p, s1[20], s2[20];

cout<<" Nhap chuoi 1: "; gets(s1);

cout<<" Nhap chuoi 2: "; gets(s2);

Trang 28

5 Một số hàm trên chuỗi (tt)

stdlib.h

◦ atoi (s): hàm chuyển chuỗi số s thành kiểu int

◦ atof (s): hàm chuyển chuỗi số s thành kiểu float

◦ atol (s): hàm chuyển chuỗi số s thành kiểu long

Trang 29

Nội dung trình bày

1. Kí tự

2. Giới thiệu chuỗi

Trang 30

6 Mảng chuỗi: Giới thiệu

◦ Ví dụ: char arrS[5][80];

và kích thước của chỉ mục thứ hai xác định chiều dài lớn nhất của mỗi chuỗi

có chiều dài tối đa là 79 ký tự

Ví dụ:

char dsNN [][ 10 ] ={"Pascal", "C++", "Java"};

char Tên_Mảng [][ độ_dài ] = {" Chuoi 1 ", …, " Chuoi n "};

Trang 31

for ( int i=0; i<n; i++ ){

cout<<" Chuoi thu "<<i+1<<" : ";

puts(s[i]);

}

}

Trang 32

Nội dung trình bày

1. Kí tự

2. Giới thiệu chuỗi

Trang 34

7 Mảng con trỏ chuỗi: Ví dụ

void NhapMangConTroChuoi( char *s[], int n)

{

for ( int i=0; i<n; i++ ){

cout<<" Nhap chuoi thu "<<i+1<<" : ";

s[i] = new char[20]; // cấp phát vùng nhớ

for ( int i=0; i<n; i++ ){

cout<<" Chuoi thu "<<i+1<<" : ";

puts(s[i]);

}

}

Ngày đăng: 09/05/2021, 18:12

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

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