[問題] 有關字串的問題

作者: hugovan (我是呼狗文)   2015-04-04 01:48:15
開發平台(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了很久都看不太懂啊~~~~
作者: Push5F (帳號已賣)   2015-04-04 01:57:00
char str[10] ,str 是? &str[10]是?
作者: ckvir (ckvir)   2015-04-04 02:08:00
裡面資料不是長那樣把
作者: dirkc (3781615)   2015-04-04 07:46:00
你的理解沒錯,他程式有邏輯上的不合理例如%s將其當字串空間使用,%d又將第一字元空間當整數使用
作者: TobyH4cker (Toby (我要當好人))   2015-04-05 04:37:00
你在解題目嗎?把題目給出來比較有幫助:" target="_blank" rel="nofollow">
另外他的解答你也抄錯 http://pastebin.com/YBbeEn8G輸入的名字是存在stu[i] + 5,輸入的數字(成績)必不會大於255(0xFF),因此存在char不會有問題,以輸入測資YaoLin 87 82 Y N 0為例,在stu[0]中會是0 1 2 3 4 5 6 7 8 9 100x87 0x82 Y N 0x00 Y a o L i n抱歉我忘了轉16進位,87 82是十進位,分別是0x57 0x52

Links booklink

Contact Us: admin [ a t ] ucptt.com