我必须逐字制作一个读取文件的C程序(我必须使用read()
方法,我不允许使用C库和其他方法)。我想将文件中的单词与给定的单词进行比较。它基本上是在文件中搜索特定单词。
我的问题是,当我从文件中得到一个字时,例如。“bla”,我将它与同一个字符串进行比较,strcmp()
并不表明它们是相同的。
我在下面粘贴了我的代码:
#include <stdlib.h>
#include <fcntl.h> //open,creat
#include <sys/types.h> //open
#include <sys/stat.h>
#include <errno.h> //perror, errno
#include <string.h>
int tananyag;
int fogalom;
int modositott;
char string_end = '\0';
int main(int argc,char** argv){
tananyag = open("tananyag.txt",O_RDONLY);
fogalom = open("fogalom.txt",O_RDONLY);
modositott =open("modositott.txt",O_WRONLY|O_CREAT|O_TRUNC,S_IRUSR|S_IWUSR);
if (tananyag < 0 || fogalom < 0 || modositott < 0){ perror("Error at opening the file\n");exit(1);}
char c;
int first = 1;
char * str;
str = (char*)malloc(80*sizeof(char));
while (read(tananyag,&c,sizeof(c))){
if(c != ' '){
if(first){
strcpy(str,&c);
first = 0;
}
else{
strcat(str,&c);
}
}
else
{
strcat(str,&string_end);
printf("%s string length: %i \n",str,strlen(str));
printf("%s string compared to bla string: %i \n",str, strcmp(str,"bla"));
str = (char*)malloc(80*sizeof(char));
first = 1;
}
}
close(tananyag);
close(fogalom);
close(modositott);
}