【发布时间】:2014-10-21 00:57:03
【问题描述】:
我想逐个字符地读取文本文件,然后对字符和单词做一些事情。这是我的实现:
char c;
char* word="";
fp = fopen("text.txt","rt");
do
{
c = (char)fgetc(fp);
if(c == ' ' || c == '\n' || c == '\0' || c == '\t')
{
//wordfunction(word)
word = ""; //Reset word
}
else
{
strcat(word, &c); //Keeps track of current word
}
//characterfunction(c);
}while(c != EOF);
fclose(fp);
但是,当我尝试运行此程序时,我的程序会立即崩溃。将单词设置为“”有问题吗?如果是这样,我应该怎么做?
【问题讨论】:
-
strcat(word, &c);错误。""是没有可以绑定字符串的空间。&c不是 C_String。也c可能会模拟 EOF。 -
1) 它将准备足够大的区域。例如
char word[1024];2) 使用动态字符串。 -
什么是动态字符串?
-
喜欢根据字符的添加自动增大尺寸。