c语言对字符串的处理(难题!)

来源:百度知道 编辑:UC知道 时间:2024/06/25 09:40:10
有这样一个题,要求:
在a.dat文件里有一篇英文文章,将它读出来后要实现把所有的分隔符(比如“,”,“.”)都替换成空格,同时将每一行的文章单词全部倒置。
形式如下:
原文 you know,i love it

输出 it love i know you
最后再将其保存。

请教各位c朋友,这个问题想了好久一直没什么好的解决方案!
一楼回答的朋友貌似是用vbscript写的吧?
但是ccc的初始值是多少?好像这个函数达不到我说的这种替换效果...

三楼的朋友里面用到了库函数,但是这道题是我考三级的时候做的,一般这样的考试基本上不会用到这些库函数吧?
哪位同志能不用库函数把提解出来就好了!

写得不是很好,但保证能运行
#include <stdio.h>
#include <string.h>

int main()
{
char buff[1024];
FILE *inFile, *outFile;
char *ptr;
inFile = fopen("a.dat", "r");
outFile = fopen("b.dat", "a+");
if (inFile == NULL || outFile == NULL)
{
printf("IO error");
return 0;
}
while (!feof(inFile))
{
fgets(buff, 1024, inFile);
ptr = buff;
while (*ptr != '\n' && *ptr != '\0')
{
if (*ptr == ',' || *ptr == '.')
*ptr++ = ' '; //换成空格
else
ptr++;
}
*ptr = '\0'; //倒转前,将尾部的换行符换成字符串结束符
strrev(buff); //字符串倒转,是个库函数,在string.h中
*ptr++ = '\n'; //倒转后,再将结束符换成换行
*ptr = '\0'; //加字符串结束符
fputs(buff, outFile);
puts(buff); //打印到屏幕
}
return 0;
}

下面的代码看