2013-11-21 98 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。:) –