PDA

View Full Version : Lý thuyết " Giáo trình ngôn ngữ C Aptech"(Bài 17 : Chuỗi - Thực hành)


x9nd
05-23-2009, 04:59 PM
Bài 17 : Chuỗi - Thực hành
1. Sắp xếp chuỗi sử dụng các hàm trong thư viện

Code:

#include <stdio.h>
#include <string.h>

void main()
{
int i, j;
char str_arr[5] [20], str[20];
clrscr();
for(i=0;i<5;i++)
{
printf("\nEnter string %d: ", i+1);
scanf("%s", str_arr[i]);
}
for(i=0;i<4;i++)
{
for(j=i+1;j<5;j++)
{
strcpy(str, str_arr[i]);
strcpy(str_arr[i], str_arr[j]);
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();

2. Sử dụng hàm để chuyển một mảng ký tự về kiểu chữ hoa

- Các chuỗi có thể được truyền vào hàm để thao tác. Khi chuỗi hay mảng các ký tự, được truyền vào hàm, thực ra là ta truyền địa chỉ của nó. Để mình họa điều này, chúng ta hãy viết một chương trình C để chuyển các chuỗi về kiểu chữ hoa. Việc chuyển đổi về kiểu chữ hoa sẽ được thực hiện bằng một hàm.

Code:

#include <stdio.h>
#include <string.h>

void main()
{
int i;
char names[5] [20];
void uppername(char name_arr[]);
clrscr();

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

Bài tập bắt buộc

- 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. Dùng một vòng lặp để thực hiện thao tác này 5 lần.

Hết bài 17

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. Chèn chức danh đó vào phần đầu mỗi tên trong mảng. Hiển thị các tên đẫ sửa đổi.
2. Viết một chương trình C nhập vào nhiệt độ trung bình hằng năm của 5 năm qua cho 5 thành phố. Hiển thị nhiệt độ lớn nhất và nhỏ nhất của mỗi thành phố. Sử dụng hàm để xác định các nhiệt độ lớn nhất và nhỏ nhất.