我的頭越來越扭曲試圖弄清楚。在C中的字符串操作
該任務是從用戶那裏獲取一行文本,然後將其打印出來,包括每個字符的十六進制代碼。
我認爲這本來很簡單,而且可能一旦我明白了用法。
我的想法是,我會設置我的變量使用char stg_array[80]
這將給我一個80字符的最大大小。
然後,我會做一個
while((stg_array[i] = getch()) != '\n')
{
i++;
}
然後我會用strlen()
來確定實際長度(我知道我已經擁有它,只是想利用strlen()
練習),並放到一個for
循環,會從strlen(stg_array)-1
和
printf("Array[%d] = %s Hex Value = %X", i, stg_array[i], i);
我理解的緩衝區溢出漏洞倒計時我能有如果用戶鍵入超過80個字符。現在不擔心這一點。
我得到的是strlen()
正在返回文本中第一個空格的長度。
如果我跳過用戶輸入,只需在中間固定for
循環(例如10)使char stg_array[80]={"The quick brown fox."}
程序崩潰即可。
我在想我要出去吃午餐,瞭解C字符串數組的功能。
以供將來參考,使用'{}'鍵代碼,而不是它加粗。 – Marlon 2012-02-03 19:12:53
告訴我們。 – cnicutar 2012-02-03 19:14:15
要回復@Marlon,請花點時間[閱讀Stack Overflow的格式化語法](http://stackoverflow.com/editing-help)。 – 2012-02-03 19:15:29