行から単語を解析し、英数字以外の文字にヒットしたときに単語をツリーに追加するプログラムを作成中です。行にスペースがなければ、すべてうまくいきます。ただし、英数字以外の文字がある場合、問題のループ (コード内のコメント行から始まる) のサイズは半分になります!
ループが半分になるのはなぜですか?
Tree addin (char* filee, Tree tree)
{
int i;
FILE *fp;
fp = fopen(filee, "r");
char* hold2 = malloc(99);
int count=-1;
char* hold;
while ((hold=getLine(fp))!=NULL)
{
count=-1;
for (i=0; i<strlen(hold); i++) //The loop in question
{
count++;
if ((isalnum(hold[count])==0)&&(hold[count]!='\n'))
{
strncpy(hold2, hold, count);
hold2[count]='\0';
hold=strdup(&hold[count+1]);
count=-1;
tree = insertT(tree, hold2);
}
}
tree = insertT(tree, hold);
}
free(hold);
fclose(fp);
return tree;
}