需要从字符串数组的一部分访问元素

时间:2018-07-13 14:34:19

标签: c++ string char

假设我有以下代码:

#include <iostream>
#include <string>

using namespace std;

int main()
{
    string disectedString[5];

    disectedString[0] = "011001";

    string temp = disectedString[0];
    string print = temp[0];

    return 0;
}

所以我要从字符串数组中选择一个元素,然后将其分配给temp变量。从那里,我想从temp变量中选择第一个元素(第一个字符)。我将如何去做?

2 个答案:

答案 0 :(得分:2)

您的直觉在大多数情况下是有效的:您使用方括号运算符[]访问集合或序列中索引位置的元素。因此

  • disectedString[0]的意思是“ disectedString的第一个元素”;
  • temp[0]的意思是“温度的第一个元素”;

正如评论者和@ demogorgon.net的答案所解释的那样,您混淆的是类型。

现在,使用现代C ++,您可以“玩笨蛋”,而不必声明您知道的类型:

std::string disectedString[5];
disectedString[0] = "011001";
auto temp = disectedString[0];
auto print = temp[0];

请注意使用auto而不是特定的类型名称。这将按您希望的那样工作。然后,您可以使用use print,并执行以下操作:

std::cout << print;

,这将输出0


顺便说一句,我相信您应该重新考虑对名称的选择:

  • 直觉上,print指的是打印事物的函数或方法;如果您想简短一点,我建议first_characterchar_to_printc
  • temp不再是临时变量,例如print
  • 最好避免包含类型名的变量名,尽管有时我们不得不诉诸于此。具体来说,您在变量名中使用单词“ string”;可能不是一个好主意。
  • 您的disectedString变量不是字符串,而是字符串数组,这很令人困惑。

答案 1 :(得分:1)

<dependency> <groupId>org.neo4j</groupId> <artifactId>neo4j</artifactId> <version>3.4.0</version> </dependency> 在许多方面的行为类似于string的数组(*)。您需要将char的类型设置为print,而不是char,因为您试图从string获取特定元素。因此,您的string应该如下所示:

print

(*),但实际上要复杂得多。

这是一个prints the output的代码示例。