【发布时间】:2019-05-19 10:13:51
【问题描述】:
我想知道以下代码是否“有效”:
#include <iostream>
using namespace std;
int main(void) {
string s="Hello World!\n";
for (int i=0;i<s.size();++i) {
for (int j=0;j<s[i];++j) {
cout << "+";
}
cout << ".>\n";
}
}
我编写了这段代码,但我不知道是否应该添加一些“.c_str”或者其他,以使其代码更好。
【问题讨论】:
-
不是在 C 中,而是在 C++ 中,是的。为什么?再多的
c_str也不会让代码变得更好,只会变得更糟。 -
我不知道在不创建新的字符选项卡和使用 .c_str() 的情况下使用 s[i] 是否正确。
-
当然是,你只是访问字符串中的一个元素,就是访问器的点。
-
您不能将这两种实现都用于 C 和 C++。可以编写一些两种语言都可以使用的代码,但并非总是如此
-
使用 for 范围更简单:
for (char c : s) {for (int j = 0; j != c; ++j) {/*..*/}}.
标签: c++ string c-strings stdstring