【问题标题】:Accessing contents of a string using variables使用变量访问字符串的内容
【发布时间】:2012-09-26 23:05:48
【问题描述】:

我目前正在做一些需要我访问字符串的各个部分的事情。我似乎有一个奇怪的字符串语法错误。

这是我的问题:

说你有一个字符串

string str = "hello";

您可以使用str[0]str[1] 访问该字符串中的单个字符。 示例:

cout << str[0];

打印:'h'

但是,使用以下语法,不会打印任何内容。

int i = 0;

cout << str[i];

无论我使用什么类型的变量,我都会得到相同的结果。任何人都可以帮忙吗?

【问题讨论】:

  • 发布整个代码。
  • 根据您提供的示例,这应该可以工作。看到这个——ideone.com/DTzXz
  • 可能是 cout 的缓冲区没有被刷新。尝试输入“cout
  • 请发帖SSCCE
  • -1 不一致。当我写这篇评论时,给出的信息是不一致的。这可能意味着它非常不完整,并且问题出在 OP 没有提及的事情上。

标签: c++ string variables printing


【解决方案1】:

String 是一个 C++ 对象,它不像 C 中那样存储为字符数组,因此您无法访问它的单独部分。应将其转换为 C 字符数组以访问其部分。
试试这个:

cout <<str.c_str()[i];

【讨论】:

  • 嗯。嗯? str[i] 在 str 对象上触发各种 operator[](size_t i) 之一,返回 char& 或 const char&。这不仅是错误的,在多个假设中也是错误的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多