Trang chủLập trìnhLập trình C/C++Đọc xâu từ file và xử lý xâu ký tự lập trình...

Đọc xâu từ file và xử lý xâu ký tự lập trình C/C++ – Đọc ghi file – Con trỏ

Cụ thể đề bài như sau:

Viết chương trình thực hiện các công việc sau(Yêu cầu sử dụng con trỏ)
1. Đọc từ file input.txt vào 1 xâu ký tự
2. Viết hàm đếm số từ xuất hiện trong xâu rồi ghi ra tệp văn bản output.txt số từ có trong xâu.
3. Đổi các chữ cái đầu tiên trong mỗi từ thành chữ in hoa rồi in ra cuối tệp văn bản output.txt.

Code mẫu:

Để chạy chương trước tiên bạn cần tạo một file input.txt chứa 1 xâu và đặt cùng thư mục với mã nguồn.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include<ctype.h>
#define MAX 100

//hàm đọc xâu từ file
void docfile(char *str){
	FILE *f = fopen("input1.txt", "rt");
	while(!feof(f))
	{
		fgets(str,100,f); //Lệnh đọc xâu
	}
}

//Hàm đếm từ trong xâu
int demTu(char *str){
	int dem=0;
	if(str[0]!=' ') dem++;
	int str1[100];
	int len = strlen(str);
	for(int i=1;i<len-1;i++)
	{
//Nếu có dấu cách và đằng sau là 1 ký tự thì sẽ cộng thêm 1 từ
		if(str[i]==' ' && str[i+1]!=' ') dem++;
	}
	return dem;
}

//Hàm viết hoa chữ cái đầu tiên
void vietHoaChuCaiDauTien(char *str){
//hàm toupper có tác dụng chuyển ký tự thường thành ký tự hoa nếu ký tự đó là thường
	if(str[0]!=' ') str[0] = toupper(str[0]);//Viết hoa chữ cái đầu tiên
	int len = strlen(str);//Lấy độ dài xâu
	for(int i=1;i<len-1;i++)
	{
//Nếu có dấu cách và đằng sau là 1 ký tự thì ta đổi ký tự đó thành hoa
		if(str[i]==' ' && str[i+1]!=' ') str[i+1] = toupper(str[i+1]);
	}
}

//Xuất ra màn hình
void xuat(char *str){
	printf("xau ky doc tu file la:\n\n");	puts(str);
	printf("\n\nSo tu trong xau la: %d \n=>Da duoc ghi vao file output.txt\n", demTu(str));
	
	printf("\n\nXau sau khi viet hoa cac chu cai dau tien:\n\n");
	vietHoaChuCaiDauTien(str);
	puts(str);
	printf("\n  =>Xau viet hoa chu cai dau tien da ghi vao cuoi file output1.txt\n");
}


//Ghi vào file
void ghiFile(char *str){
	FILE *f = fopen("output1.txt", "wt");
	fprintf(f, "%d\n\n\n", demTu(str));
	
	vietHoaChuCaiDauTien(str);
	fputs(str,f);
	
	fclose(f);
}
int main()
{
	char *str = (char*)malloc(sizeof(char) * MAX);
	docfile(str);
	xuat(str);
	ghiFile(str);
	
	return 0;
}
0 0 Phiếu bình chọn
Xếp hạng bài viết
BÀI VIẾT LIÊN QUAN
Đăng ký nhận thông báo
Thông báo email khi
guest
0 Bình luận
Không thể gửi email
Phản hồi nội tuyến

NÊN ĐỌC THÊM

Bạn muốn tìm kiếm gì?


0
Giáo sư! có thể ném gạch bên dưới nhé!x
()
x