作者hugovan (我是呼狗文)
看板C_and_CPP
標題[問題] 有關字串的問題
時間Sat Apr 4 01:48:15 2015
開發平台(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
推 Push5F: char str[10] ,str 是? &str[10]是? 04/04 01:57
推 ckvir: 裡面資料不是長那樣把 04/04 02:08
→ dirkc: 你的理解沒錯,他程式有邏輯上的不合理 04/04 07:46
→ dirkc: 例如%s將其當字串空間使用,%d又將第一字元空間當整數使用 04/04 07:59
→ TobyH4cker: 你在解題目嗎?把題目給出來比較有幫助: 04/05 04:37
→ TobyH4cker: 輸入的名字是存在stu[i] + 5,輸入的數字(成績)必 04/05 04:44
→ TobyH4cker: 不會大於255(0xFF),因此存在char不會有問題, 04/05 04:45
→ TobyH4cker: 以輸入測資YaoLin 87 82 Y N 0為例,在stu[0]中會是 04/05 04:47
→ TobyH4cker: 0 1 2 3 4 5 6 7 8 9 10 04/05 04:48
→ TobyH4cker: 0x87 0x82 Y N 0x00 Y a o L i n 04/05 04:48
→ TobyH4cker: 抱歉我忘了轉16進位,87 82是十進位,分別是0x57 0x52 04/05 04:49