Tài liệu Lập trình với ngôn ngữ C phần 18 doc - Pdf 10



Chuỗi 251
Bài 18 Chuỗi

Mục tiêu:

Kết thúc bài học này, bạn có thể:

¾ Sử dụng các hàm về chuỗi
¾ Truyền mảng vào hàm
¾ Truyền chuỗi vào hàm.

Các bước trong bài này được giải thích chi tiết, đầy đủ. Mục đích là nắm được những nội
dung trong bài lý thuyết và sử dụng thành thạo được công cụ. Hãy làm theo các bước dưới
đây một cách cẩn thận.
Các bước được cho trong bài này được giải thích cặn kẽ, dễ hiểu và đã được tư duy cẩn thận từ đầu
đến cuối. Bài đã được viết để đáp ứng được mục tiêu học và để có thể hiểu hoàn toàn về công cụ. Xin
hãy thực hiện theo các bước một cách cẩn thận.

Phần I – Trong thời gian 1 giờ 30 phút đầu:

18.1 Các hàm về chuỗi

Các hàm xử lí chuỗi trong C nằm trong trong thư viện chuẩnfile string.h. Do đó bất kì
chương trình nào có sử dụng đến các hàm xử lí chuỗi phải đưa file thư viện này vào
bằng lệnh include.
Các hàm về chuỗi trong C được tìm thấy trong tập tin header chuẩn string.h. Tập tin này phải
được bao gồm (include) trong mỗi chương trình sử dụng các hàm về chuỗi.

18.1.1

}

4. So sánh độ
chiều dài của mỗi chuỗi với các chuỗi khác, nếu chiều dài của chuỗi này nhỏ
hơn chiều dài của một chuỗi đứng ở vị trí phía sau nó trong mảng, ta sẽ thực hiện đổi chỗ 2
chuỗi đó cho nhau. Đổi chỗ nếu chiều dài của chuỗicủa nó nhỏ hơn chuỗi kia. Câu lệnh sẽ
là:

for(i = 0; i < 4; i++)
for(j = i + 1; j < 5; j++)
{
if(strlen(str_arr[i]) < strlen(str_arr[j]))
{
strcpy(str, str_arr[i]);
strcpy(str_arr[i], str_arr[j]);
strcpy(str_arr[j], str);
}
}

Chuỗi str được sử dụng trong thao tác hoán đổi hai chuỗi.
Một mảng str được sử dụng để giúp đỡ cho thao tác đổi chỗ.

5. Hiển thị các chuỗi theo thứ tự đã sắp xếp. Câu lệnh sẽ là:

printf("\nThe strings in descending order of length are:");
for(i = 0; i < 5; i++)
printf("\n%s", str_arr[i]);

Chúng ta hãy nhìn vào
xem chương trình hoàn chỉnh.

strcpy(str_arr[j], str);
}
}

printf("\nThe strings in descending order of length are:");

for(i = 0; i < 5; i++)
printf("\n%s", str_arr[i]);

getch();
}

Để xem kết quả, thực hiện các bước sau đây:4. Lưu tập tin với tên stringI.C.
5. Biên dịch tập tin, stringI.C.
6. Thực thi chương trình, stringI.C.
7. Trở về chương trình soạn thảo.

Kết quả của chương trình trên được minh họa như sau:
Một ví dụ thực thi chương trình trên như sau:

Enter string 1: This
Enter string 2: sentence
Enter string 3: is
Enter string 4: not
Enter string 5: sorted
The strings in descending order of length are:
sentence


254 Elementary Programming with C

void uppername(char name_arr[]);

4. Nhập 5 chuỗi đưa vào mảng. Câu lệnh sẽ là:

for(i = 0; i < 5; i++)
{
printf("\nEnter string %d: ", i + 1);
scanf("%s", names[i]);
}

5.
Truyền mỗi chuỗi vào hàm để chuyển thành in hoa. Sau khi chuyển đổi, hiển thị
chuỗi đã thay đổi. Câu lệnh sẽ là: for(i = 0; i < 5; i++)
{
uppername(names[i]);
printf("\nNew string %d: %s", i + 1, names[i]);
}

6.
Định nghĩa hàm. Câu lệnh sẽ là:

void uppername(char name_arr[])
{
int x;

Chuỗi 255
for(i = 0; i < 5; i++)
{
printf("\nEnter string %d: ", i + 1);
scanf("%s", names[i]);
}

for(i = 0; i < 5; i++)
{
uppername(names[i]);
printf("\nNew string %d: %s", i + 1, names[i]);
}

getch();
}
void uppername(char name_arr[])
{
int x;

for(x = 0; name_arr[x] != '\0'; x++)
{ if(name_arr[x] >= 97 && name_arr[x] <= 122)
name_arr[x] = name_arr[x] - 32;
}
}


Phần II – Trong thời gian 30 phút kế tiếp:

1. Viết một chương trình C để hiển thị số lần xuất hiện của một ký tự nào đó trong một chuỗi. Đặt
Dùng một vòng lặp để thực hiện thao tác này 5 lần.

Để làm điều này,
a. Khai báo một biến ký tự và một mảng ký tự.
b. Khai báo một hàm để nhận vào một mảng ký tự và một biến ký tự, và trả về một giá trị
nguyên.
c. Đặt
Dùng một vòng lặp để nhập vào một chuỗi và một ký tự 5 lần.
d. Nhận vào một chuỗi và một ký tự.
e. Truyền chuỗi và ký tự vào hàm và nhận giá trị trả về bằng một biến nguyên.
f. In giá trị trả về.
g.
Viết code cho hàm trên. Hàm trên thực hiện Sso sánh từng kí tự trong chuỗi với kí tụ cần
tìm. Tăng biến đếm lên một mỗi khi tìm thấy kí tự đó trong chuỗi. Cuối cùng, trả về giá trị
của biến đếm cho hàm main().
g.Viết định nghĩa hàm. So sánh mỗi ký tự trong chuỗi với ký tự đã đưa vào. Tăng một biến
nguyên mỗi khi ký tự đã đưa vào xuất hiện trong chuỗi. Cuối cùng, trả về biến nguyên cho hàm
main().
Formatted: Bullets and NumberingChuỗi 257
Bài tập tự làm

1. Viết một chương trình C để nhập vào 5 tên và một chức danh. Xen Chèn chức danh đó vào phần
vào đầu mỗi tên trong mảng. Hiển thị các tên đã sửa đổi.


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status