2013-11-21 97 views
0

在main.cpp中我必須打印我的字符數組是這樣的:使用指向字符的指針打印字符數組。

const char *str(CValue::TestStringValue0()); 
cout << ' ' << *str << endl; //must not change 

我不能修改這個!所以我需要打印我的char數組,但不是數組的第一個值。

TestStringValue這個樣子..

static const char* TestStringValue0() {...} 
+0

不明白的問題 – edtheprogrammerguy

+0

您可以顯示'TestStringValue0()'的代碼?而不是返回例如'str'你會返回'str + 1' – clcto

+0

'CValue :: TestStringValue0'看起來像什麼?你的問題是什麼? –

回答

1

我不知道我理解正確的,但如果你不應該修改此行:

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.你有什麼奇怪的條件:)

+0

爲什麼你需要一個臨時變量? – andre

+0

非常感謝,男士! 我正在做一些項目,並在main.cpp中,我們有一些測試,我們不能modificate。 – Alewenka

+0

@Alewenka,不客氣:)如果我的回答有幫助,如果您不介意,可以將其標記爲已接受;) – FreeNickname

1
const char *str(CValue::TestStringValue0()); 
const char *p = str; 

for (; *str; ++str) 
{ 
    cout << ' ' << *str << endl; //must not change 
} 

:)

+0

我也想過:)一個不錯的:)唯一的問題是'cout'結尾的愚蠢的'endl' :) – FreeNickname

+1

@FreeNickname這不是愚蠢的endl。這是愚蠢的assignmnet。:) –