[爆卦]字元比對c是什麼?優點缺點精華區懶人包

為什麼這篇字元比對c鄉民發文收入到精華區:因為在字元比對c這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者KengiBon (蜀中無大將)看板C_and_CPP標題Re: [問題] c語言 檔案內容比對...

字元比對c 在 李 恩 Instagram 的最佳貼文

2021-09-10 22:33:42

#台中市役所 廳舍 以下資料來自於《臺中市文化資產處》 📌臺中市役所興建於明治44年(西元1911年)為仿歐式建築,至今矗立已超過#百年 ,為#臺中 第一棟鐵筋混凝土的建築。日治時期原為臺中廳公共埤圳聯合會事務所,後來作為臺中市役所,為臺中市的行政官署。 📌戰後曾為臺中市228事件處理委員會及中國國...


我使用fscanf(file, "%s", &arr[i]);的方式
將A和B檔案的偶數行的前三項依序抓入arr1[]和arr2[]中來比對

但是出現一個問題

以第二行為例

雖然arr1[0]=|,arr1[1]=NUM,arr1[2]=|

且 arr2[0]=|,arr2[1]=NUM,arr2[2]=|

但是用if來比對arr1[i]與arr2[i]時卻是"FALSE"

為什麼??

我不太懂 希望大大能幫我解答

看可以用甚麼方式來比對

謝謝!!


※ 引述《KengiBon (蜀中無大將)》之銘言:
: 想請問程設的大大一個問題
: (本人是C語言初學者)
: 拜託大大給小弟解惑一下
: (不一定要給我程式解答 但希望能給我一個方向 感恩!!)
: 想把一個A檔案(a.txt)中的第一個欄位(NUM)與B檔案(b.txt)的NUM欄位依序比對
: 比對成功 則在A檔案中之最後一欄位(MODE)後增加一B檔案中的欄位(12hr)內容
: A檔案內容如下:
: -----------------------------------------------------
: | NUM | CHART | DATETM | MODE |
: -----------------------------------------------------
: | 1 | 123 | 上午 10:45:00 | EPIDURAL MODE |
: -----------------------------------------------------
: | 2 | 25 | 下午 02:55:00 | PCA MODE |
: -----------------------------------------------------
: | 3 | 10017587 | 下午 11:23:10 | PCA MODE |
: (以下省略)
: B檔案內容如下:(PS:與A檔案中欄位長不全相同)
: -----------------------------------------------
: | NUM | CHART | 12hr |
: -----------------------------------------------
: | 1 | 123 | 20 |
: -----------------------------------------------
: | 2 | 25 | 12.5 |
: -----------------------------------------------
: | 3 | 10017587 | 125 |
: (以下省略)
: 以上
: 我也找過一些資料
: 但大都是介紹C++的方法
: (但是不清楚能否用於C中 因為我主要是要寫C的程式)^^"
: 若有甚麼太蠢或是表達不好的地方 還請各位大大能見諒
: 謝謝各位!

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.64.171.202
VictorTom:請問你的arr1和arr2兩個array怎麼開的??看起來至少要先 04/29 21:52
VictorTom:宣告兩個夠大的2維array, 照你這樣寫的話@_@" 04/29 21:53
KengiBon:兩個都是[4][10240] 傳回值是int(不知跟char有甚麼差別 04/29 22:14
VictorTom:請問您後面那句傳回值是int是什麼意思?_? 04/30 00:03
VictorTom:您是 int arr1[4][10240]; 這樣嗎?? 那請改用char試試:) 04/30 00:03
VictorTom:另外, char字串的compare應該用strcmp()這個function做 04/30 00:04
VictorTom:推測您的寫法, arr1是一個2D array, arr2是另一個.... 04/30 00:04
VictorTom:arr1[i]拿到的是第i個第一維度裡, 第二維度10240的頭的 04/30 00:05
VictorTom:位址; 很饒舌, 簡單說就是你拿來比較的是array的某一個 04/30 00:06
VictorTom:address, 而不是裡面存的value, 這個case它們比較永遠 04/30 00:06
VictorTom:不會成立的. 請照00:04那推, 用strcmp(arr1[i],arr2[i]) 04/30 00:07
VictorTom:這個function return 0代表字串相同, 但是你要確定你的 04/30 00:08
VictorTom:兩個array都有'\0'結尾, 照理說你用fscanf應該就有了. 04/30 00:08
VictorTom:最後還是那個建議, 只要不是太複雜或太機敏, 請貼code:) 04/30 00:09
VictorTom:盡量別讓板友幫您找問題時還得先猜您可能是怎麼實作的XD 04/30 00:10
VictorTom:補充一下, 如果您肯定file裡的data一定照個您的規定寫的 04/30 00:12
VictorTom:'|'這個字元的判斷可以用 arr1[i][0] == arr2[i][0] 04/30 00:12
VictorTom:保險一定要抓到'|', 還可以再 && arr1[i][0] == '|' 04/30 00:13
KengiBon:感謝V大大的指導 我會試試看的(下次會把code也貼出來得:) 04/30 08:55

你可能也想看看

搜尋相關網站