在main.cpp中我必須打印我的字符數組是這樣的:使用指向字符的指針打印字符數組。
const char *str(CValue::TestStringValue0());
cout << ' ' << *str << endl; //must not change
我不能修改這個!所以我需要打印我的char數組,但不是數組的第一個值。
TestStringValue這個樣子..
static const char* TestStringValue0() {...}
在main.cpp中我必須打印我的字符數組是這樣的:使用指向字符的指針打印字符數組。
const char *str(CValue::TestStringValue0());
cout << ' ' << *str << endl; //must not change
我不能修改這個!所以我需要打印我的char數組,但不是數組的第一個值。
TestStringValue這個樣子..
static const char* TestStringValue0() {...}
我不知道我理解正確的,但如果你不應該修改此行:
cout << ' ' << *str << endl; //must not change
然後,你可以做像這樣:
const char *tempStr(CValue::TestStringValue0());
const char **str = &tempStr;
cout << ' ' << *str << endl; //must not change
在這種情況下,cout將打印從TestStringValue0返回的整個字符串,wh在原始代碼中它只打印第一個字符。
P.S.你有什麼奇怪的條件:)
爲什麼你需要一個臨時變量? – andre
非常感謝,男士! 我正在做一些項目,並在main.cpp中,我們有一些測試,我們不能modificate。 – Alewenka
@Alewenka,不客氣:)如果我的回答有幫助,如果您不介意,可以將其標記爲已接受;) – FreeNickname
const char *str(CValue::TestStringValue0());
const char *p = str;
for (; *str; ++str)
{
cout << ' ' << *str << endl; //must not change
}
:)
我也想過:)一個不錯的:)唯一的問題是'cout'結尾的愚蠢的'endl' :) – FreeNickname
@FreeNickname這不是愚蠢的endl。這是愚蠢的assignmnet。:) –
不明白的問題 – edtheprogrammerguy
您可以顯示'TestStringValue0()'的代碼?而不是返回例如'str'你會返回'str + 1' – clcto
'CValue :: TestStringValue0'看起來像什麼?你的問題是什麼? –