c语言一个一个读取字母,C语言编程:从文件读取单词的程序

最近发现在学习算法的时候会经常读取文本文件中的单词,自己用C写了实现这个功能的函数,我取名为 getWord(FILE *fp,char *str)。它接受两个参数,第一个参数是要读取文件的文件指针,第二个参数是保存单词的字符指针(要保证其足够大,不会发生溢出  :)。下面是整个函数的源代码:

//从文件中读取单词

int getWord(FILE *fp,char *str)

{

char c;

int counter = 0;

while((c = fgetc(fp)) != EOF){

if( isNull(c) && (counter <= 0)){

//消去非字母字符

continue;

}

else if(isNull(c) && (counter > 0)){

//一个单词读取完毕

break;

}

str[counter++] = c;

}

str[counter] = '\0';

//成功返回SUCCESS 否则返回FAIL

if(counter > 0)

return 1;

else

return 0;

}

我使用的是一个全局的文件指针,这样可以接着上一次读到的地方继续读取。程序的逻辑很简单:

当读取到非字母的时候判断是不是已经读完一个单词了,

如果字符计数器counter大于0就代表单词读取完毕

跳出循环,处理之后再函数返回

如果不大于0就代表还没有读到单词

跳过这个字符(舍弃非字母字符)

大家肯定还注意到了这里有一个函数 isNull(char c)。这个函数用来判断字符c是不是字母,如果是字母则返回0,不是则返回1.函数代码如下:

//过滤与字母无关的所有字符

int isNull(char c)

{

return !(((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')));

}

这就是大笨兔给大家分享的一个C语言函数:从文件中读取单词。当然,由于水平有限程序还存在着一些BUG,如果你有什么好的建议或者想法请与我联系

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值