x9nd
05-23-2009, 04:52 PM
Bài 13 : Con trỏ - Thực hành
1. Đếm số nguyên âm trong một chuỗi sử dụng con trỏ:
Code:
void main()
{
char *ptr;
char word[10];
int i, vowcnt = 0;
printf("\nEnter a word:");
scanf("%s", word);
ptr = &word[0];
for(i=0; i<strlen(word); i++)
{
if((*ptr=='a')||(*ptr=='e')||(*ptr=='i')||(*ptr==' o')||(*ptr=='u')||(*ptr=='A')||(*ptr=='E')||(*ptr= ='I')||(*ptr=='O')||(*ptr=='U'))
{
vowcnt++;
}
ptr++;
}
printf("\nThe word is: %s \n The number of vowels in the word is: %d", word, vowcnt);
}
2. Sắp xếp một mảng theo thứ tự abc sử dụng con trỏ
Code:
void main()
{
char *ptr[5];
int i;
int j;
char cpyptr1[5][10], cpyptr2[5][10];
char *temp;
for(i=0;i<5;i++)
{
printf("\nEnter a string:");
scanf("%s", cpyptr1[i]);
ptr[i] = cpyptr1[i];
}
for(i=0;i<5;i++)
{
strpcpy(cpyptr2[i], cpyptr1[i]);
}
for(i=0;i<4;i++)
{
for(j=i+1;j<5;j++)
{
if(strcmp(ptr[i], ptr[j])>0)
{
temp = ptr[i];
ptr[i] = ptr[j];
ptr[j] = temp;
}
printf("\n The Original list is");
for(i=0;i<5;i++)
{
printf("\n%s", cpyptr2[i]);
}
printf("\n The Sorted list is");
for(i=0;i<5;i++)
{
printf("\n%s", ptr[i]);
}
}
}
}
Bài tập bắt buộc
- Viết một chương trình C để nối hai chuỗi bằng cách sử dụng các con trỏ.
- Để thực hiện điều này:
a. Khai báo ba biến chuỗi
b. Khai báp ba con trỏ kiểu ký tự
c. Nhập các giá trị của hai chuỗi
d. Tạo ba con trỏ để trỏ đến ba biến chuỗi. Chuỗi thứ ba hiện tại không có bất kỳ giá trị gì.
e. Lặp qua chuỗi thứ nhất và sao chép nội dung của chuỗi đó vào chuỗi thứ ba. Sử dụng cac biến con trỏ để sao chép các giá trị.
f. Sau khi sao chép chuỗi thứ nhất, lặp qua chuỗi thứ hai và chép nội dung của chuỗi vào cuối chuỗi ba. Sử dụng các biến con trỏ để sao chép giá trị.
g. In ra chuỗi thứ ba.
Hết bài rồi
Bài tập tự làm
1. Viết một chương trình C để đảo một mảng ký tự bằng cách sự dụng con trỏ.
2. Viết một chương trình để cộng hai ma trận sử dụng các con trỏ.
1. Đếm số nguyên âm trong một chuỗi sử dụng con trỏ:
Code:
void main()
{
char *ptr;
char word[10];
int i, vowcnt = 0;
printf("\nEnter a word:");
scanf("%s", word);
ptr = &word[0];
for(i=0; i<strlen(word); i++)
{
if((*ptr=='a')||(*ptr=='e')||(*ptr=='i')||(*ptr==' o')||(*ptr=='u')||(*ptr=='A')||(*ptr=='E')||(*ptr= ='I')||(*ptr=='O')||(*ptr=='U'))
{
vowcnt++;
}
ptr++;
}
printf("\nThe word is: %s \n The number of vowels in the word is: %d", word, vowcnt);
}
2. Sắp xếp một mảng theo thứ tự abc sử dụng con trỏ
Code:
void main()
{
char *ptr[5];
int i;
int j;
char cpyptr1[5][10], cpyptr2[5][10];
char *temp;
for(i=0;i<5;i++)
{
printf("\nEnter a string:");
scanf("%s", cpyptr1[i]);
ptr[i] = cpyptr1[i];
}
for(i=0;i<5;i++)
{
strpcpy(cpyptr2[i], cpyptr1[i]);
}
for(i=0;i<4;i++)
{
for(j=i+1;j<5;j++)
{
if(strcmp(ptr[i], ptr[j])>0)
{
temp = ptr[i];
ptr[i] = ptr[j];
ptr[j] = temp;
}
printf("\n The Original list is");
for(i=0;i<5;i++)
{
printf("\n%s", cpyptr2[i]);
}
printf("\n The Sorted list is");
for(i=0;i<5;i++)
{
printf("\n%s", ptr[i]);
}
}
}
}
Bài tập bắt buộc
- Viết một chương trình C để nối hai chuỗi bằng cách sử dụng các con trỏ.
- Để thực hiện điều này:
a. Khai báo ba biến chuỗi
b. Khai báp ba con trỏ kiểu ký tự
c. Nhập các giá trị của hai chuỗi
d. Tạo ba con trỏ để trỏ đến ba biến chuỗi. Chuỗi thứ ba hiện tại không có bất kỳ giá trị gì.
e. Lặp qua chuỗi thứ nhất và sao chép nội dung của chuỗi đó vào chuỗi thứ ba. Sử dụng cac biến con trỏ để sao chép các giá trị.
f. Sau khi sao chép chuỗi thứ nhất, lặp qua chuỗi thứ hai và chép nội dung của chuỗi vào cuối chuỗi ba. Sử dụng các biến con trỏ để sao chép giá trị.
g. In ra chuỗi thứ ba.
Hết bài rồi
Bài tập tự làm
1. Viết một chương trình C để đảo một mảng ký tự bằng cách sự dụng con trỏ.
2. Viết một chương trình để cộng hai ma trận sử dụng các con trỏ.