[問題] C語言 strtok取法相關
遇到的問題: (題意請描述清楚)
例如資料庫為:
aaaaa cccccc dd fffff
dd ggg hhhh
已建立一字串的struct gen[].name如下:
aaaaa
bbb
cccccc
dd
eee
fffff
ggg
hhhh
如下所附的code,希望以strtok取資料庫出來後,逐一與gen[].name相比
將相同結果以0存在rep[][]中(rep已初始為1),希望結果為:
rep[0][0]=0 rep[0][2]=0 rep[0][3]=0 rep[0][5]=0
rep[1][3]=0 rep[1][6]=0 rep[1][7]=0
程式跑出來的錯誤結果:
資料庫換行前的最後一筆資料 沒做到strcmp的判斷
意即輸出為:
rep[0][0]=0 rep[0][2]=0 rep[0][3]=0
rep[1][3]=0 rep[1][6]=0
其他值都為1
開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux)
Dev-C
有問題的code: (請善用置底文標色功能)
fseek(frep,46,SEEK_SET);//跳過資料庫前言
while(fgets(str,200,frep)!=NULL)
{
Token = strtok(str,sep);
while(Token != NULL) /* 使用迴圈取出剩餘句元 */
{
printf("%s",Token);
for( k=0 ; k<g_num ; k++ )
{
i=strcmp(Token,gen[k].name);
if( i==0 ){//比較名稱,相同則在該順序存0
rep[month][k]=0;
printf("%d %d %d\n",month,k,rep[month][k]);}
}
Token = strtok(NULL,sep);
}
month++;
}
補充說明:
感激不盡
--
◣◢
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.135.12.152
→
06/08 14:30, , 1F
06/08 14:30, 1F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章