Cơ sở lập trình - Trường ĐH Thương mại - 9

Nhập dữ liệu cho xâu

Cách 1: khởi tạo giá trị mặc định:

char *str=”hello world”;

Cách 2: Dùng hàm scanf:

char *s = (char*) malloc (9*sizeof (char));

for( i =0; i< 9; i++)

scanf(“%c”, s+i);

Lưu ý: cơ chế làm việc của vùng nhớ đệmcó thể nhận được kết quả không theo mong muốn

cần làm sạch vùng đệm


Có thể bạn quan tâm!

Xem toàn bộ 113 trang tài liệu này.

7/2020 Cơ sở lập trình 129


Cơ sở lập trình - Trường ĐH Thương mại - 9


char *s = (char*) malloc (9*sizeof (char)); for( i =0; i< 9; i++)

{

fflush(stdin) ;

scanf(“%c”, s+i);

}

Nhận xét

Dài dòng và phức tạp hạn chế sử dụng hàm scanf

để nhập dữ liệu cho xâu

7/2020 Cơ sở lập trình 130

Cách 3: dùng hàm gets

Cú pháp

char * gets(char *str);

Hoạt động

cho phép nhập vào một dãy kí tự cho đến khi gặp kí hiệu ‘n’(Enter). Kí tự ‘n’ sẽ không được đặt vào chuỗi str, trình biên dịch sẽ thêm vào cuối str là kí tự ‘’

Lưu ý: sau khi nhập xâu sẽ để lại kí tự ‘n’ trên dòng nhập

làm sạch vùng đệm trước khi gọi hàm: fflush(stdin);

7/2020 Cơ sở lập trình 131


Xuất xâu ra màn hình

Dùng hàm printf hoặc puts

int puts(const char *);

Sự khác nhau: puts in xong thì con trỏ tự động nhảy

xuống dòng

Ví dụ

char hello[] = "Hello World"; printf("nChuoi in ra = %s", hello);

puts(hello);

7/2020 Cơ sở lập trình 132

Ví dụ: Viết chương trình tìm độ dài của xâu.


7/2020 Cơ sở lập trình 133



Một số hàm xử lý xâu

strlen

strchr

strstr

toupper

tolower

Yêu cầu: viết chương trình để thể hiện các

hàm trên

7/2020 Cơ sở lập trình 134

4.1 Hàm

4.2 Truyền tham số cho hàm


7/2020 Cơ sở lập trình 135



4.1.1 Giới thiệu

4.1.2 Cấu trúc tổng quát của hàm

4.1.3 Nguyên tắc hoạt động của hàm

4.1.4 Sử dụng giá trị trả về của hàm


7/2020 Cơ sở lập trình 136

Mục đích:Phân rã bài toán thành các bài toán con Chương trình được tổ chức thành các chương trình con.

Ưu điểm

Có thể sử dụng lại hàm, tiết kiệm dòng lệnh

Chương trình logic, gọn gàng

Linh động sử dụng hàm qua lời gọi hàm

Phân chia công việc và ghép kết quả lại tăng tốc giải bài toán.


7/2020 Cơ sở lập trình 137


Khái niệm: Hàm là một đơn vị chương trình độc lập dùng để thực hiện một phần việc nào đó

Ví dụ: hàm để nhập số liệu, in kết quả hay

thực hiện một số tính toán.


7/2020 Cơ sở lập trình 138

Đặc điểm của hàm trong C

Cho phép một chương trình có thể có nhiều hàm.

Không cho phép trong một hàm định nghĩa một hàm khác nhưng cho phép trong một hàm có thể có nhiều lời gọi hàm đến các hàm khác đã được định nghĩa.

Các yếu tố của hàm

Khai báo nguyên mẫu hàm (prototype)

Định nghĩa hàm (declaration)

Lời gọi hàm (call).

7/2020 Cơ sở lập trình 139


Khai báo nguyên mẫu hàm(prototype)

Ý nghĩa: Khai báo sự tồn tại của hàm

Cú pháp:

<type> <name>([<type1> [p1], <type2> [p2],…]);

Trong đó:

type: kiểu giá trị trả về của hàm

name: tên của hàm

type1, type2, …: là các kiểu của các đối số/tham số.

p1,p2, … là tên các đối số

7/2020 Cơ sở lập trình 140

Ví dụ

Ví dụ1: Xây dựng hàm tính n!

long gthua(int n);

Ví dụ 2: Xây dựng hàm tính tổ hợp chập k của n

dựa vào công thức tính

int tohop(int n, int k);


7/2020 Cơ sở lập trình 141



Vị trí nguyên mẫu hàm: được đặt ở đầu

chương trình, sau chỉ dẫn tiền xử lý

Lưu ý: khi khai báo nguyên mẫu hàm, trình biên dịch chỉ quan tâm đến kiểu hàm, tên hàm, kiểu và thứ tự kiểu của đối số không cần đặt tên của các đối số.


7/2020 Cơ sở lập trình 142

Định nghĩa hàm

Ý nghĩa: Khai báo các thao tác theo trình tự

cần thực hiện của hàm

Cú pháp:

<type> <name>([<type1> [p1], <type2> [p2],…])

{

// thân hàm return (giá trị);

}


7/2020 Cơ sở lập trình 143


Vị trí định nghĩa hàm: sau thân chương trình chính

Lưu ý:

Phải viết đúng kiểu, đúng tên, đúng thứ tự và tên các kiểu các đối số ở trong cặp ( ) tương ứng với trong khai báo nguyên mẫu.

Bắt buộc phải có tên đối số trong danh sách các đối số của hàm.

Ngôn ngữ C cho phép một cách viết khác gộp chung khai báo nguyên mẫu hàm và định nghĩa hàm


7/2020 Cơ sở lập trình 144

..... Xem trang tiếp theo?
⇦ Trang trước - Trang tiếp theo ⇨

Ngày đăng: 01/10/2023