[問題] 有關字串的問題

看板C_and_CPP (C/C++)作者 (我是呼狗文)時間11年前 (2015/04/04 01:48), 11年前編輯推噓2(2011)
留言13則, 4人參與, 最新討論串1/1
開發平台(Platform): C 問題(Question):有關字串矩陣的問題 餵入的資料(Input): 小弟最近才開始自學C語言,對於字串這邊有很大的疑問 假設我今天令 char test[5][5] scanf "%s",test[0] 輸入test 這時候資料裡面應該是 0 1 2 3 4 0 t e s t 1 2 3 4 對吧? 但是我網上看到有人的程式碼是 #include <stdio.h> char stu[10][10]; int n; int sch[110]; int main() { int i, k, t; scanf("%d", &n); for (i = 0; i < n; i++) { scanf("%s %d %d %c %c %d", stu[i], &stu[i][0], &stu[i][1], &stu[i][2], &stu[i][3], &t); stu[i][4] = t + 1; } for (i = 0; i < n; i++) { if (stu[i][0] > 80 && stu[i][4] > 1) sch[i] += 8000; if (stu[i][0] > 85 && stu[i][1] > 80) sch[i] += 4000; if (stu[i][0] > 90) sch[i] += 2000; if (stu[i][0] > 85 && stu[i][3] == 'Y') sch[i] += 1000; if (stu[i][1] > 80 && stu[i][2] == 'Y') sch[i] += 850; } 在這個程式裡面,他的stu[i][0],不就指向當初輸入的stu[i]的第一個字母嗎?? 但是這邊程式也沒出錯 希望板上有沒有人能夠解釋一下 小弟GOOGLE了很久都看不太懂啊~~~~ -- ╭───╮ 29 柏組長眉頭一皺, \ ㄟˇㄏ / -⊙—⊙-+ 覺得該炸了嫌犯全家。 $snegi ▅▅▆ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 219.70.215.127 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1428083300.A.08A.html ※ 編輯: hugovan (219.70.215.127), 04/04/2015 01:49:35

04/04 01:57, , 1F
char str[10] ,str 是? &str[10]是?
04/04 01:57, 1F

04/04 02:08, , 2F
裡面資料不是長那樣把
04/04 02:08, 2F

04/04 07:46, , 3F
你的理解沒錯,他程式有邏輯上的不合理
04/04 07:46, 3F

04/04 07:59, , 4F
例如%s將其當字串空間使用,%d又將第一字元空間當整數使用
04/04 07:59, 4F

04/05 04:37, , 5F
你在解題目嗎?把題目給出來比較有幫助:
04/05 04:37, 5F

04/05 04:37, , 6F
04/05 04:37, 6F

04/05 04:41, , 7F
另外他的解答你也抄錯 http://pastebin.com/YBbeEn8G
04/05 04:41, 7F

04/05 04:44, , 8F
輸入的名字是存在stu[i] + 5,輸入的數字(成績)必
04/05 04:44, 8F

04/05 04:45, , 9F
不會大於255(0xFF),因此存在char不會有問題,
04/05 04:45, 9F

04/05 04:47, , 10F
以輸入測資YaoLin 87 82 Y N 0為例,在stu[0]中會是
04/05 04:47, 10F

04/05 04:48, , 11F
0 1 2 3 4 5 6 7 8 9 10
04/05 04:48, 11F

04/05 04:48, , 12F
0x87 0x82 Y N 0x00 Y a o L i n
04/05 04:48, 12F

04/05 04:49, , 13F
抱歉我忘了轉16進位,87 82是十進位,分別是0x57 0x52
04/05 04:49, 13F
文章代碼(AID): #1L7j9a2A (C_and_CPP)
文章代碼(AID): #1L7j9a2A (C_and_CPP)