题目是,case.1文件里有一堆由数字、标点、字母、-连接符(连接单词)组成的文章里,将一个个单词读出写到words.txt里。
#include "stdio.h"
#include "math.h"
#include "string.h"
#include "stdlib.h"
void WritetoFile()
{
FILE *fp=fopen("case1.txt","r"),*fp1=fopen("words.txt","w");
char ch,a[100];
a[0]='\0';
int i=0,k=0; //k用于单词是否开始读取
while((ch=fgetc(fp))!=EOF)
{
if(ch=='-')
continue;
if(k==0)
{
if(a[0]!='\0')
fprintf(fp1,"%s\n",a);
i=0;
a[i]='\0';
}
if(ch>='a'&&ch<='z'||ch>='A'&&ch<='Z')
{
k=1;
if(ch>='a'&&ch<='z')
a[i++]=ch;
if(ch>='A'&&ch<='Z')
a[i++]=ch+32;
a[i]='\0';
}
else
k=0;
}
fprintf(fp1,"%s\n",a);
fclose(fp);
fclose(fp1);
}
int main()
{
WritetoFile();
}
k=1开始读单词,k=0表示单词读入完成了,输出完整的单词。
当遇到-时,就continue读下一个字符,k值应该是1不变啊,可是为什么k变成0了?