【发布时间】:2013-04-10 18:23:56
【问题描述】:
学习 C++。我只想抓取一个字符串中的第一个字符,然后根据这个字符创建一个新的字符串,然后打印出来:
#include <iostream>
using namespace std;
int main(int argc, const char * argv[]) {
string name = "Jerry";
char firstCharacter = name.at(0);
string stringOfFirstCharacter = string(&firstCharacter);
cout << stringOfFirstCharacter;
return 0;
}
输出是:
J
Jerry
我真的不知道为什么它还打印Jerry。这是为什么呢?
【问题讨论】:
-
完全不相关,只是寻找信息,不作为判断:你是在代码中输入
using namespace std;,还是被工具插入? -
@PeteBecker:不久前我在一些示例代码中看到了它,从那以后我开始自己做。我曾经把它放在每个街区内,但这种方式对我来说似乎更方便。没有工具可以做到。为什么,这是一种奇怪的做法?
-
这不是特别好(
std::string通常更好),但是我看到很多代码示例在#includes 之后直接使用声明,我怀疑有些工具正在做它。感谢您提供信息。 -
@PeteBecker 这在初学者 C++ 书籍中很常见,但通常不足以解释他们这样做是为了简化代码示例,而不是因为这是一种好的做法。
-
@JBentley - 太糟糕了。但我对在
#includes 之后立即看到它的一致性感到震惊:没有空行,好像它只是自动成为#include指令的一部分。