Trong thời đại CNTT phát triển nhanh với tốc độ chóng mặt như hiện nay, Tin học Văn phòng là một trong những Kỹ năng mềm không thể thiếu được với mỗi sinh viên, nhân viên văn phòng,… Bất kỳ Nhà tuyển dụng nào cũng thường yêu cầu rất cao khả năng sử dụng thành thạo Tin học văn phòng như: Word, Excel, PowerPoint, Access,…Và trong những năm gần đây thì yêu cầu đó ngày càng cao hơn trước rất nhiều. Trang bị Kiến thức, kỹ năng sử Tin học văn phòng thành thạo là một việc rất cần thiết trước khi bạn tiến hành đi xin việc.
Trang 1ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
Đại học Công nghệ Thông tin
-
-THỰC HÀNH MÔN TIN HỌC ĐẠI CƯƠNG
Bài số 8 : CHUỖI
I Mục tiêu
1 Hiểu được cách khai báo và cách sử dụng chuỗi
2 Các hàm cơ bản trong chuỗi
II Bài tập thực hành
1 Tìm chuỗi st2 trong chuỗi st1
2 Chèn chuỗi st2 vào bên phải chuỗi st1 tại vị trí k
III Hướng dẫn thực hành
1 Tìm chuỗi st1 trong chuỗi st2
Đề bài
Nhập vào chuỗi st1, st2 Hãy tìm số lần xuất hiện st2 trong st1
Phân tích bài toán
Duyệt từng vị trí trong chuỗi và so sánh từng cặp kí tự trong st2 và st1
TH1:
st1 = “ABCABD”
st2 = “ABD”
xuất hiện 1 lần chuỗi “ABD”
TH2:
st1 = “AAAAA”
st2 = “AA”
xuất hiện 4 lần chuỗi “AA”
Trang 2 Chương trình minh họa
#include<stdio.h>
#include<conio.h>
#include<string.h>
main()
{
char st1[80],st2[80];
int k;
printf("\n nhap chuoi st1 va st2: ");
fflush(stdin);
gets(st1);
fflush(stdin);
gets(st2);
int tong = 0;
for (int i = 0; i < strlen(st1) – strlen(st2); i++) {
int j = 0;
while (j < strlen(st2) && st1[i+j] == st2[j])
j++;
if (j == strlen(st2))
tong++;
} printf("\n so lan xuat hien : %d", tong);
getch();
}
Ghi chú : các bạn tự suy nghĩ cách cải tiến cho bài toán trên
2 Chèn chuỗi st2 vào bên phải chuỗi st1 tại vị trí k
Đề bài
Trang 3Nhập vào chuỗi st1, st2 và vị trí k Hãy chèn chuỗi st2 vào bên phải chuỗi st1 tại vị trí k
Phân tích bài toán
Tìm vị trí k trong st1
Dời các vị trí k+1 trên chuỗi st1 qua bên phải strlen(st2) ký tự
st1 = “ABCABD”
st2 = “EF”
k = 3
Bước 1 : lấy chuỗi con từ vị trí thứ 3 “ABD” nối vào “EF”
=> “EFABD”
Bước 2 : lấy chuỗi “EFABD” nối vào “ABCABD” tại vị trí thứ 3
chuỗi “ABCEFABD”
Chương trình minh họa
#include<stdio.h>
#include<conio.h>
#include<string.h>
main()
{
char st1[80],st2[80];
int k;
printf("\n nhap chuoi st1 va st2: ");
fflush(stdin);
gets(st1);
fflush(stdin);
gets(st2);
printf("\n nhap vi tri k: ");
scanf("%d",&k);
if (k > 0)
Trang 4if (k > strlen(st1))
k = strlen(st1)+1; strcat(st2,st1+k-1); strcpy(st1+k-1,st2); puts(st1);
}
else
{
strcat(st2,st1);
puts(st1);
}
getch();
}