[問題] strcmp的輸出怪怪的
開發平台(Platform): (Ex: Win10, Linux, ...)
Linux mint
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
g++
或http://www.compileonline.com/compile_c_online.php
問題(Question):
我的strcmp跑出來的結果怪怪的20,一開始我以為是overflow害的,
結果我把空間變大後答案是18,我不太懂為甚麼...
如果直接輸入字串,會是正常的答案。
餵入的資料(Input):
struct {char str1[10], str2[10];} s;
strcpy(s.str1, "yahoo");
strcpy(s.str2, "google");
strcat(s.str1, strcat(s.str2, "adobe"));
預期的正確結果(Expected Output):
1
錯誤結果(Wrong Output):
20
程式碼(Code):(請善用置底文網頁, 記得排版,禁止使用圖檔)
http://codepad.org/KF2FCnr8
# include<stdio.h>
# include<string.h>
int test04(void){
struct {char str1[10], str2[10];} s;
strcpy(s.str1, "yahoo");
strcpy(s.str2, "google");
strcat(s.str1, strcat(s.str2, "adobe"));
return strcmp(s.str1, s.str2);
}
int main()
{
printf("%d\n", test04()); /* Problem 2-4 */
return 0;
}
補充說明(Supplement):
隔壁棚Grad-ProbAsk 程式設計的北科大考生們正在水深火熱中,懇請大大們協助<(_ _)>
--
半壁河山半攻守
半爭成敗半悟道
許銀川
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.163.147.201
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1551598970.A.1B2.html
→
03/03 16:11,
5年前
, 1F
03/03 16:11, 1F
→
03/03 16:11,
5年前
, 2F
03/03 16:11, 2F
→
03/03 16:11,
5年前
, 3F
03/03 16:11, 3F
可是我直接打
printf("%d\n", strcmp("yahoogoogleadobe", "googleadobe"));
輸出是1...
s.str1跟這樣是差在哪?怎會變成18?不懂QAQQQ
因為考試是希望我們寫出輸出是啥...
→
03/03 16:25,
5年前
, 4F
03/03 16:25, 4F
→
03/03 16:29,
5年前
, 5F
03/03 16:29, 5F
→
03/03 16:29,
5年前
, 6F
03/03 16:29, 6F
我有看過阿Q strcmp()
需要兩個字串當作參數,比較兩個字串是否相等,相等就回傳 0,
第一個字串大於第二個字串回傳正值,反之回傳負值。
但是題目要求寫出他的值...說明上沒說值是怎麼取的QAQQQ
→
03/03 17:11,
5年前
, 7F
03/03 17:11, 7F
對北科考題107考題
→
03/03 17:12,
5年前
, 8F
03/03 17:12, 8F
好的,謝謝您 <3
→
03/03 17:15,
5年前
, 9F
03/03 17:15, 9F
→
03/03 17:15,
5年前
, 10F
03/03 17:15, 10F
→
03/03 17:15,
5年前
, 11F
03/03 17:15, 11F
→
03/03 17:16,
5年前
, 12F
03/03 17:16, 12F
→
03/03 17:18,
5年前
, 13F
03/03 17:18, 13F
推
03/03 17:25,
5年前
, 14F
03/03 17:25, 14F
推
03/03 17:28,
5年前
, 15F
03/03 17:28, 15F
→
03/03 17:28,
5年前
, 16F
03/03 17:28, 16F
了解了,原來如此,謝謝您們<(_ _)>
※ 編輯: st1009 (1.163.147.201), 03/03/2019 17:30:10
推
03/05 16:44,
5年前
, 17F
03/05 16:44, 17F
→
03/10 10:54,
5年前
, 18F
03/10 10:54, 18F
→
03/10 10:54,
5年前
, 19F
03/10 10:54, 19F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章