Giáo trình Lập trình C - Quản trị mạng
Các bước cơ bản khi viết chương trình trên C
Để giải bài toán bằng chương trình thực hiện theo các bước sau:
1. Xác định đối tượng của chương trình
2. Xác định phương pháp và thuật giải
3. Viết chương trình (lập trình)
4. Chạy chương trình và kiểm tra kết quả.
Như vậy ta thấy chu trình phát triển một chương trình như sau:
1. Soạn thảo chương trình nguồn
Chúng ta có thể sử dụng một trình soạn thảo văn bản chuẩn (ASCII) nào đó để
soạn thảo chương trình, sau đó ghi vào file chương trình nguồn (ngầm định với phần
mở rộng là .C).
Do C cũng như hầu hết các ngôn ngữ lập trình phổ biến đều sử dụng bảng chữ
cái ASCII nên bạn có thể sử dụng bất kỳ một hệ soạn thảo văn bản chuẩn để viết
chương trình, tuy nhiên hầu hết các trình biên dịch của C trên môi trường MS-DOS
hoặc WINDOWS đều có tích hợp trình soạn thảo và bạn nên sử dụng trình soạn thảo
tích hợp này sẽ thuận lợi hơn.
2. Biên dịch chương trình nguồn
Hiện nay có rất nhiều chương trình dịch cho C như: Turbo C, BC, Microsoft
C,.mục đích của bước này là chuyển chương trình nguồn thành chương trình mã đối
tượng (object). Sau bước này (nếu thành công) chúng ta thu được file chương trình đối
tượng (có phần mở rộng là .OBJ)
3. Liên kết chương trình
Sau bước biên dịch hoàn thành ta có chương trình đối tượng, đây chưa phải là
chương trình có thể chạy được trên máy tính, bước này chúng ta phải sử dụng một
trình liên kết để liên kết các hàm thư viện với chương trình đối tượng để tạo ra chương
trình đích. Bạn có thể sử dụng trình liên kết độc lập nào đó, nhưng với các trình biên
dịch của C trên môi trường DOS hay WINDOWS đều có sẵn trình liên kết.
4. Chạy và kiểm tra kết quả chương trình
Khi đã có chương trình đích, chúng ta cần phải kiểm tra tính đúng đắn của
nó.Bạn chạy chương trình với các bộ dữ liệu mẫu và kiểm tra kết quả có như dự kiến
hay không, nếu có sai sót thì phải xác định nguyên nhân gây lỗi và quay lại bước 1 để
hiệu chỉnh. Và chúng ta lặp lại quá trình này cho tới khi được chương trình giải đúng
bài toán mong đợi.

Trang 1

Trang 2

Trang 3

Trang 4

Trang 5

Trang 6

Trang 7

Trang 8

Trang 9

Trang 10
Tải về để xem bản đầy đủ
Tóm tắt nội dung tài liệu: Giáo trình Lập trình C - Quản trị mạng
u trữ kí tự kết thúc xâu
(NUL).
6.1.2. Khai báo và sử dụng biến xâu
a) Khai báo xâu ký tự
Trong C, một xâu kí tự được khai báo với cú pháp như sau:
Trang 85
char tên_xâu [số_kí_tự_tối_đa];
Trong đó số_kí_tự_tối_đa cho biết số lượng kí tự nhiều nhất có thể có trong xâu.
Sau khi khai báo, biến xâu kí tự tên_xâu có thể được dùng để lưu trữ một xâu kí
tự bất kì, miễn là độ dài xâu kí tự (số kí tự có trong xâu) đó không vượt quá giá trị
số_kí_tự_tối_đa.
Ví dụ
char ho_va_ten[20];
Đây là khai báo của một biến xâu kí tự tên là ho_va_ten, biến này có thể có tối đa
20 kí tự.
Lưu ý: Đôi khi ta vẫn có thể nhập một xâu có nhiều hơn 20 kí tự cho xâu
ho_va_ten mà trình biên dịch C vẫn không báo lỗi, tuy nhiên cần tránh điều này vì khi
chạy chương trình thì chương trình quản lí bộ nhớ của hệ điều hành sẽ bắt lỗi và buộc
chương trình kết thúc.
b) Truy nhập vào một phần tử của xâu
Có thể truy nhập đến từng phần tử của xâu tương tự như truy nhập đến từng phần
tử của mảng. Cú pháp sử dụng để truy nhập là
tên_xâu[chỉ_số_của_kí_tự_cần_truy_nhập]
Ví dụ ta đã có khai báo char que_quan[10], và giả sử xâu que_quan có nội dung
là "Ha Noi". Khi đó ta có thể hình dung xâu kí tự que_quan như sau
Nội dung lưu
Phần tử thứ Chỉ số của phần tử Tên của phần tử
trữ
1 0 que_quan[0] ‘H’
2 1 que_quan[1] ‘a’
3 2 que_quan[2] ‘ ’
4 3 que_quan[3] ‘N’
5 4 que_quan[4] ‘o’
6 5 que_quan[5] ‘i’
7 6 que_quan[6] ‘\0’
8 7 que_quan[7]
9 8 que_quan[8]
10 9 que_quan[9]
6.2. Một số hàm xử lý ký tự và xâu
6.2.1. Hàm xử lý ký tự
Lưu ý: để sử dụng các hàm này ta khai báo tệp tiêu đề ctype.h.
Hàm toupper()
int toupper(int ch)
Hàm toupper() dùng để chuyển một kí tự chữ cái thường (các kí tự 'a', 'b', , 'z')
thành kí tự chữ cái hoa tương ứng ('A', 'B', , 'Z').
Hàm tolower()
int tolower(int ch)
Trang 86
Hàm tolower() dùng để chuyển một kí tự chữ cái hoa ('A', 'B', , 'Z') thành kí tự
chữ cái thường tương ứng ('a', 'b', 'z').
Hàm isalpha()
int isalpha(int ch)
Hàm isalpha() dùng để kiểm tra một kí tự có phải là chữ cái hay không ('a', 'b',
, 'z', 'A', 'B', , 'Z'). Hàm trả về giá trị khác không nếu đúng là chữ cái, trả về giá trị
0 nếu ngược lại.
Hàm isdigit()
int isdigit(int ch)
Hàm isdigit() dùng để kiểm tra một kí tự có phải là chữ số hay không ('0', '1',
'9'). Hàm trả về giá trị khác không nếu đúng, trả về giá trị 0 nếu ngược lại.
Hàm islower()
int islower(int ch)
Hàm islower() dùng để kiểm tra một kí tự có phải là chữ cái thường hay không
('a', 'b', 'z'). Hàm trả về giá trị khác không nếu đúng, trả về giá trị 0 nếu ngược lại.
Hàm isupper()
int isupper(int ch)
Hàm isupper() dùng để kiểm tra một kí tự có phải là chữ cái hoa hay không ('A',
'B', 'Z'). Hàm trả về giá trị khác không nếu đúng, trả về giá trị 0 nếu ngược lại.
Hàm iscntrl()
int iscntrl(int ch)
Hàm iscntrl() dùng để kiểm tra một kí tự có phải là kí tự điều khiển hay không (là
các kí tự không hiển thị được và có mã ASCII từ 0 đến 31). Hàm trả về giá trị khác
không nếu đúng, trả về giá trị 0 nếu ngược lại.
Hàm isspace()
int isspace(int ch)
Hàm isspace() dùng để kiểm tra một kí tự có phải là dấu cách (space, mã ASCII
là 32), kí tự xuống dòng ('\n', mã ASCII là 10), kí tự về đầu dòng ('\r', mã ASCII là
13), dấu tab ngang ('\t', mã ASCII là 9) hay dấu tab dọc ('\v', mã ASCII là 11) hay
không. Hàm trả về giá trị khác không nếu đúng, trả về giá trị 0 nếu ngược lại.
CHƯƠNG 6: XÂU KÝ TỰ (STRING)
MỤC TIÊU CỦA BÀI
Sau khi học xong bài này người học có khả năng
Kiến thức
- Trình bày khái niệm về xâu ký tự, cách biểu diễn ký tự, xâu ký tự
- Cách lưu trữ xâu ký tự
Kĩ năng
- Thực hiện lập trình và các thao tác cơ bản với ký tự và xâu ký tự.
- Phân biệt được ký tự và xâu ký tự
Thái độ
Trang 87
Vận dụng tích cực, linh hoạt các kiến thức đã học vào các bài học tiếp theo, áp
dụng viết các chương trình cơ bản.
6.2.2. Hàm xử lý xâu
6.2.2.1. Nhập và hiển thị dữ liệu
Vào ra dữ liệu trên xâu kí tự tức là nhập dữ liệu cho xâu và hiển thị dữ liệu chứa
trong xâu.
Để nhập dữ liệu cho xâu ta có thể sử dụng 2 hàm scanf() hoặc gets()
scanf(“%s”,tên_xâu);
gets(tên_xâu);
Để hiển thị nội dung xâu ta có thể dùng 2 hàm printf() hoặc puts()
printf(“%s”,tên_xâu);
puts(tên_xâu);
Các hàm scanf(), gets, printf(), puts() được khai báo trong tệp tiêu đề stdio.h.
Ví dụ: Nhập vào một chuỗi và hiển thị trên màn hình chuỗi vừa nhập.
#include
#include
#include
int main()
{
char Ten[12];
printf("Nhap chuoi: ");gets(Ten);
printf("Chuoi vua nhap: ");puts(Ten);
getch();
return 0;
}
6.2.2.2. Một số hàm xử lý xâu thường dùng
- Hàm strlen()
size_t strlen(char* tên_xâu);
Hàm trả về độ dài (số kí tự có trong xâu) của xâu kí tự tên_xâu.
- Hàm strcpy()
char* strcpy(char* xâu_đích, char* xâu_nguồn)
Hàm này sẽ sao chép nội dung xâu_nguồn và ghi lên xâu_đích.
- Hàm strcmp()
int strcmp(char* xâu_thứ_nhất, char* xâu_thứ_hai);
- Hàm strcmp trả về
• giá trị < 0 nếu xâu_thứ_nhất nhỏ hơn xâu_thứ_hai
• giá trị 0 nếu xâu_thứ_nhất bằng xâu_thứ_hai
• giá trị > 0 nếu xâu_thứ _nhất lớn hơn xâu_thứ_hai
- Hàm strcat()
char* strcat(char* xâu_đích, char* xâu_nguồn);
Hàm strcat sẽ ghép nối xâu_nguồn vào ngay sau xâu_đích. Kết quả trả về của
hàm strcat() là xâu mới ghép nối từ 2 xâu xâu_nguồn và xâu_đích.
Trang 88
- Hàm strchr()
char* strchr(char* str, int ch);
Hàm strchr() dùng để tìm kiếm vị trí của kí tự ch trong xâu str. Nếu có kí tự ch
trong str thì hàm strchr() trả về con trỏ trỏ tới kí tự ch đầu tiên trong str, ngược lại nó
sẽ trả về con trỏ NULL.
- Hàm strstr()
char* strstr(char* str1, char* str2);
Hàm strstr() dùng để tìm kiếm vị trí của xâu con str2 trong xâu str1. Nếu str2 là
xâu con của str1 thì hàm strstr() trả về con trỏ trỏ tới kí tự đầu tiên của xâu con str2
đầu tiên trong str1, ngược lại nó sẽ trả về con trỏ NULL.
- Hàm atoi()
int atoi(char* str)
Hàm atoi() dùng để chuyển một xâu kí tự là biểu diễn của một số nguyên thành
số nguyên tương ứng. Nếu chuyển đổi thành công, hàm atoi() trả về giá trị số nguyên
chuyển đổi được, ngược lại trả về giá trị 0.
- Hàm atol()
long int atol(char* str)
Hàm atol() dùng để chuyển một xâu kí tự là biểu diễn của một số nguyên dài
(tương ứng với kiểu dữ liệu long int) thành số nguyên dài tương ứng. Nếu chuyển đổi
thành công, hàm atol() trả về giá trị số nguyên chuyển đổi được, ngược lại trả về giá trị
0.
- Hàm atof()
double atof(char* str)
Hàm atof() dùng để chuyển một xâu kí tự là biểu diễn của một số thực (ở cả dạng
số dấu phẩy tĩnh và động đều được) thành số thực tương ứng. Nếu chuyển đổi thành
công, hàm atof() trả về giá trị số thực chuyển đổi được, ngược lại trả về giá trị 0.
Các hàm strcpy(), strlen(),strcmp(), strcat(), strchr(), strstr() khai báo trong tệp
tiêu đề string.h.
Các hàm atoi(), atol(), atof() khai báo trong tệp tiêu đề stdlib.h.
Ví dụ minh họa:
#include
#include
#include // Phai co thu vien string.h thi moi
// su dung duoc cac ham strcpy, strcmp...
void main()
{
char str1[10] = “abc”;
char str2[10] = “def”;
clrscr();
printf(“ str1: %s”,str1);
printf(“\n str2: %s”,str2);
printf(“\n strcmp(str1,str2) = %d”,strcmp(str1,str2));
Trang 89
printf(“\n strcat(str1,str2) = %s”,strcat(str1,str2));
printf(“\n str1: %s”,str1);
printf(“\n str2: %s”,str2);
printf(“\n strcpy(str1,str2) = %s”,strcpy(str1,str2));
printf(“\n str1: %s”,str1);
printf(“\n str2: %s”,str2);
strcpy(str1,”ab”);
strcpy(str2,”abc”);
printf(“\n strcmp(str1,str2) = %d”,strcmp(str1,str2));
getch();
}
Kết quả:
str1: abc
str2: def
strcmp(str1,str2) = -3
strcat(str1,str2) = abcdef
str1: abcdef
str2: def
strcpy(str1,str2) = def
str1: def
str2: def
strcmp(str1,str2) = -3
Cần lưu ý khi sử dụng các hàm strcat(), strcpy(),.. là kích thước bộ nhớ lưu trữ
dành cho xâu đích phải đủ để chứa kết quả thu được sau lời gọi các hàm trên.
6.3. Một số chương trình xử lý dữ liệu kiểu xâu
Bài 1: Nhập vào một chuỗi và hiển thị trên màn hình chuỗi vừa nhập.
#include
#include
#include
int main()
{
char Ten[12];
char queQuan[15];
printf("Nhap Ten: ");fflush(stdin);gets(Ten);
printf("Nhap Que Quan: ");fflush(stdin);gets(queQuan);
printf("Chuoi vua nhap: ");puts(Ten);puts(queQuan);
getch();
return 0;
}
Ngoài ra, ta có thể sử dụng hàm printf(), puts() (trong conio.h) để hiển thị chuỗi
lên màn hình.
Trang 90
Bài 2: Nhập vào họ lót và tên của một người, sau đó in cả họ và tên của họ lên
màn hình.
#include
#include
#include
int main()
{
char HoLot[30], Ten[12];
printf("Nhap Ho Lot: ");gets(HoLot);
printf("Nhap Ten: ");gets(Ten);
strcat(HoLot,Ten); /* Ghep Ten vao HoLot*/
printf("Ho ten la: ");puts(HoLot);
getch();
return 0;
}
Bài 3: Xác định độ dài của một chuỗi ký tự nhập vào
#include
#include
#include
int main(){
char Chuoi[255];
int Dodai;
printf("Nhap chuoi: ");gets(Chuoi);
Dodai = strlen(Chuoi)
printf("Chuoi vua nhap: ");puts(Chuoi);
printf("Co do dai %d",Dodai);
getch();
return 0;
}
Trang 91
TH BÀI 6: MẢNG VÀ XỬ LÝ XÂU KÝ TỰ
MỤC TIÊU CỦA BÀI:
Sau khi học xong bài này người học có khả năng:
Kiến thức: Trình bày được khái niệm về xâu ký tự.
Kĩ năng
- So sánh được xâu ký tự và mảng ký tự;
- Viết chương trình xử lý ký tự và xâu ký tự.
Thái độ: Vận dụng tích cực, linh hoạt các kiến thức đã học vào các bài học tiếp theo,
áp dụng viết các chương trình cơ bản.
Nội dung:
1. Thiết bị, dụng cụ, vật tư
Máy tính cài phần mềm Code Block 16.01 hoặc phần mềm Turbo C++ 3.0
Trang 92
Giấy, bút.
2. Trình tự thực hiện
BẢNG TRÌNH TỰ THỰC HIỆN
STT Các bước Thao tác Dụng cụ, thiết Yêu cầu kỹ
Trang 93
thực hiện bị vật tư thuật, an toàn
1 Bước 1: Tạo Cách 1: File->New->emtyfile Máy tính cài đặt Tạo được
file mới Cách 2: Ctrl+Shift+N phần mềm 1file .C.
codeblock Lưu file trong
folder
2 Bước 2: Tìm Cách 1: Vẽ lưu đồ sơ đồ giải thuật Giấy, bút Giải thuật đề
giải thuật của Cách 2: Biểu diễn bằng ngôn ngữ đếm số lần
bài toán đếm tự nhiên xuất hiện của 1
số lần xuất ký tự trong
hiện của 1 ký xâu.
tự trong xâu
3 Bước 3: Viết Soạn thảo chương trình trên file Máy tính cài đặt Hoàn thành 1
chương trình vừa tạo phần mềm chương trình
codeblock hoàn chỉnh
gồm đầy đủ
các phần.
4 Bước 4: Chạy Kick chọn biểu tượng Build and Máy tính cài đặt Không báo lỗi,
chương trình run phần mềm hiển thị màn
codeblock hình kết quả
5 Bước 5: Máy tính cài đặt Tìm ra đúng số
Kiểm tra kết phần mềm lần xuất hiện
quả codeblock của 1 ký tự
3.An toàn lao động
- Chọn nơi làm việc sạch sẽ, rộng rãi, thoáng mát;
- Mặc quần áo bảo hộ khi vào phòng thực hành
- Chú ý an toàn về điện khi thực hành;
- Kiểm tra cẩn thận trước khi cấp nguồn cho máy.
4. Thao tác mẫu
Bước 1: Tạo file mới
Bước 3: Viết chương trình
Bước 4: Chạy chương trình
Bước 5: Kiểm tra kết quả
BẢNG SAI HỎNG THƯỜNG GẶP
Trang 94
5. Thực hành
Giao bài tập cho sinh viên.
Sinh viên thực hành theo nhóm và theo trình tự các bước, thực hiện công việc ghi
trong sổ thực hành.
Bài 1: Nhập vào một xâu ký tự từ bàn phím, đếm số lần xuất hiện của ký tự ‘A’
trong xâu?
Bài 2: Nhập 2 xâu ký tự từ bàn phím, so sánh độ dài của 2 xâu?
Bài 3: Nhập 2 xâu ký tự từ bàn phím, nối xâu thứ nhất vào xâu thứ 2?
STT Sai lầm Nguyên nhân Biện pháp phòng tránh
Chương trình báo lỗi, Kiểm tra lỗi trước khi
Thiếu câu lệnh,
1 không chạy được chạy, tìm và sửa lỗi tại
Gõ sai cú câu lệnh
chương trình các dòng báo đỏ
Ít nhất 1 trong 2 hệ số a,b
2 Tìm sai nghiệm Để hệ số kiểu nguyên
ép kiểu về kiểu số thực
Chọn biểu tượng Run
Trình biên dịch chưa cập Lưu chương trình trước
3 khi chưa lưu chương
nhật thay đổi khi chạy
trình
Trang 95
BÀI TẬP TỔNG HỢP
MỤC TIÊU CỦA BÀI:
Sau khi học xong bài này người học có khả năng:
Kiến thức:
- Trình bày được các kiến thức cơ bản về ngôn ngữ lập trình C;
- Nêu được các bước để giải quyết bài toán;
- Mô tả được các thành phần của chương trình C.
Kĩ năng:
- Sử dụng được các câu lệnh cơ bản để giải quyết các bài toán;
- Sửa lỗi khi các chương trình gặp lỗi.
Thái độ
- Vận dụng tích cực, linh hoạt các kiến thức đã học vào các bài học tiếp theo,
áp dụng viết các chương trình cơ bản;
- Đảm bảo an toàn cho người và thiết bị trong quá trình thực hành.
Nội dung:
1. Thiết bị, dụng cụ, vật tư
Máy tính cài phần mềm Code Block 16.01 hoặc phần mềm Turbo C++ 3.0
Giấy, bút.
Trang 96
2. Trình tự thực hiện
BẢNG TRÌNH TỰ THỰC HIỆN
Các bước Dụng cụ, thiết Yêu cầu kỹ
STT Thao tác
thực hiện bị vật tư thuật, an toàn
1 Bước 1: Tạo Cách 1: File->New->emtyfile Máy tính cài đặt Tạo được
file mới Cách 2: Ctrl+Shift+N phần mềm 1file .C.
codeblock Lưu file trong
folder
2 Bước 2: Tìm Cách 1: Vẽ lưu đồ sơ đồ giải thuật Giấy, bút Giải thuật đề
giải thuật của Cách 2: Biểu diễn bằng ngôn ngữ kiểm tra một
bài toán viết tự nhiên số nguyên tố.
hàm kiểm tra
số nguyên tố,
hàm nhập và
hiển thị mảng
n số nguyên.
3 Bước 3: Viết Soạn thảo chương trình trên file Máy tính cài đặt Hoàn thành 1
chương trình vừa tạo phần mềm chương trình
codeblock hoàn chỉnh
gồm đầy đủ
các phần.
4 Bước 4: Chạy Kick chọn biểu tượng Build and Máy tính cài đặt Không báo lỗi,
chương trình run phần mềm hiển thị màn
codeblock hình kết quả
Trang 97
5 Bước 5: Máy tính cài đặt Hiển thị ra các
Kiểm tra kết phần mềm số nguyên tố
quả codeblock
3.An toàn lao động
- Chọn nơi làm việc sạch sẽ, rộng rãi, thoáng mát;
- Mặc quần áo bảo hộ khi vào phòng thực hành
- Chú ý an toàn về điện khi thực hành;
- Kiểm tra cẩn thận trước khi cấp nguồn cho máy.
4. Thao tác mẫu
Bước 1: Tạo file mới
Bước 3: Viết chương trình
Bước 4: Chạy chương trình
Bước 5: Kiểm tra kết quả
STT Sai lầm Nguyên nhân Biện pháp phòng tránh
Chương trình báo lỗi, Kiểm tra lỗi trước khi
Thiếu câu lệnh,
1 không chạy được chạy, tìm và sửa lỗi tại
Gõ sai cú câu lệnh
chương trình các dòng báo đỏ
Ít nhất 1 trong 2 hệ số a,b
2 Tìm sai nghiệm Để hệ số kiểu nguyên
ép kiểu về kiểu số thực
Chọn biểu tượng Run
Trình biên dịch chưa cập Lưu chương trình trước
3 khi chưa lưu chương
nhật thay đổi khi chạy
trình
BẢNG SAI HỎNG THƯỜNG GẶP
5. Thực hành
Giao bài tập cho sinh viên.
Sinh viên thực hành theo nhóm và theo trình tự các bước, thực hiện công việc ghi
trong sổ thực hành.
Bài 1: Nhập vào một xâu ký tự từ bàn phím, đếm số lần xuất hiện của ký tự ‘A’
trong xâu?
Bài 2: Nhập 2 xâu ký tự từ bàn phím, so sánh độ dài của 2 xâu?
Bài 3: Nhập 2 xâu ký tự từ bàn phím, nối xâu thứ nhất vào xâu thứ 2?
Trang 98
File đính kèm:
giao_trinh_lap_trinh_c_quan_tri_mang.pdf

