台灣最大程式設計社群網站
線上人數
964
 
會員總數:240112
討論主題:186180
歡迎您免費加入會員
討論區列表 >> C/C++ >> 自製搜尋法問題
[ 變換順序 ]  
[我要回覆]
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
自製搜尋法問題
價值 : 10 QP  點閱數:226 回應數:0

樓主

Exagger
門外漢
0 2
10 0
發送站內信




小弟於今日寫了一個程式,是關於讀檔後搜尋檔內是否有與我所輸入的字串相符的小程式,
但是遇上了一個瓶頸:

[code]
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <windows.h>
#define SIZE 150

char var[SIZE];

void read_maintxt();
void setColor(int color);

char *w;

int main()
{
read_maintxt();

char C_wanttocheck[SIZE];

while(1)
{
printf("請輸入要找的文字:");
scanf("%s",&C_wanttocheck);

fgets(var, SIZE, stdin);
fgets(C_wanttocheck, SIZE, stdin);

C_wanttocheck[strlen(C_wanttocheck) - 1] = '\0'; // 去除最後的換行字元

w = strstr(var, C_wanttocheck); //strstr()函式;尋找雙方相同處

if(w == NULL)
{
printf("找不到,或是您打錯了\n");
}
else
{
setColor(242);

printf("找到了!在%d的位置\n", (w - var) - '0' );
}

printf("\n");

setColor(7);

}

system("pause");
return 0;
}

void read_maintxt()
{
char filename[10];
FILE *fp;
int i;

printf("請輸入本文檔名檔名(包括副檔名):");
scanf("%s",&filename);

fp = fopen(filename,"r");

if(fp == NULL) printf("讀檔失敗或你沒這個檔\n");
else
{
printf("\n");

i = 0;

while(!feof(fp)) //feof指end of file
{
fscanf(fp,"%c",&var[i]);
printf("%c",var[i]);
i++;
}

printf("\n");
}

fclose(fp);
}

void setColor(int color)
{
HANDLE hConsole;
hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(hConsole,color);
}
[/code]

如上,執行後在搜尋時卻只回傳相同的數字,再加上小弟時在不怎麼會,
煩請各位高手指教,多謝!!

搜尋相關Tags的文章: [ C++ ] , [ 自製 ] , [ 搜尋 ] ,
本篇文章發表於2016-11-29 12:37
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
目前尚無任何回覆
[ 變換順序 ]   

回覆
如要回應,請先登入.