我正在嘗試從以“ - ”分隔的字串加載兩個值。
我不知道在 scanf 中放什么來忽略這個破折號。
這是一個說明問題的簡化片段:
char first[3];
char second[3];
char* str = "foo - bar";
sscanf(str, "%s <what should be here> %s", first, second);
printf("%s %s", first, second);
如果占位符中沒有放置任何內容,程式將列印“foo -”
uj5u.com熱心網友回復:
要告訴scanf期望 a -,請將 a-放入格式字串中:
sscanf(str, "%s - %s", first, second);
此外,使您的陣列足夠大以容納您期望的字符以及終止的空字符:
char first[4];
char second[4];
您還應該限制scanf接收陣列的大小:
sscanf(str, "%3s - %3s", first, second);
如果-可能不存在,您需要額外的代碼來處理;簡單scanf是不夠的。同樣,如果字串可能長于三個字符,則需要額外的代碼。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/373376.html
