11/05/2018, 10:14

Cách đọc các xâu vào mảng 1 chiều và chuẩn hóa?

Tạo một tệp văn bản mỗi dòng chứa một xâu họ và tên bằng chữ thường. Viết chương trình đọc các xâu từ tệp trên vào một mảng một chiều các xâu ký tự, chuẩn hóa các xâu họ và tên thành xâu mà trong đó các tiếng cách nhau chỉ một dấu cách trống, đổi các chữ cái đầu của các tiếng trong các xâu họ và tên ...

Tạo một tệp văn bản mỗi dòng chứa một xâu họ và tên bằng chữ thường. Viết chương trình đọc các xâu từ tệp trên vào một mảng một chiều các xâu ký tự, chuẩn hóa các xâu họ và tên thành xâu mà trong đó các tiếng cách nhau chỉ một dấu cách trống, đổi các chữ cái đầu của các tiếng trong các xâu họ và tên sau khi đã chuẩn hóa thành chữ hoa.

Anh chị nào có thể giúp em sửa code này với không ạ..em cảm ơn nhiều ạ..

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

char xau[200];
FILE *f;
int doctep() // kiem tra chu trong tep
{
f=fopen("input.txt","rt");
if(f==NULL) return 1;
else
{
while(!(feof(f)))
{
fgets(xau,200,f);
//strcat(xau,s);
}
return 0;
}
}

void themcach(char *xau,int index)
{
for(int i=strlen(xau)+1;i>index&&i>0;i--) xau[i]=xau[i-1];
xau[index]=' ';
}
void chuanhoa(char *xau)
{
int i,j=0;
for(i=0;i<strlen(xau);i++)
{
if (j==0&&strchr(",.!;:?",xau[i])) continue;
else if (i&&j&&strchr(",.!;:?",xau[i-1])&&xau[i]!=' ') themcach(xau,i);

if (j&&strchr(",.!;:?",xau[i])&&xau[j-1]==' ') xau[j-1]=xau[i],xau[j]=' ';
else if ((j==0&&xau[i]!=' ')||(j&&xau[j-1]==' '&&xau[i]!=' ')) xau[j++]=toupper(xau[i]);
else if ((j&&xau[i]!=' ')||(j&&xau[i-1]!=' '&&xau[i]==' ')) xau[j++]=xau[i];
}
xau[j-1*(j&&xau[j-1]==' ')]=NULL;
}

void main()
{

doctep();
chuanhoa(xau);
printf(" Xau chuan hoa: %s",xau);
getch();
}
0