指向字符串中的单个字符

时间:2014-04-01 18:29:57

标签: c++ string pointers

假设我有一个名为foo的字符串,其值为"我不想成为一个c字符串",以及一个名为bar的字符串指针。

有没有办法让bar指向字符串中的大写字母而不将其转换为c字符串?直接指向它只会给条形值#34;我不想成为一个c字符串"而不是价值"我",我尝试的其他一切只会返回错误。

int main() 
{
    string foo = "I dont want to be a c string";
    string *bar = &foo //I want the pointer bar to stay a pointer of type string.
    cout << *bar; //Prints "I dont want to be a c string" when I want it to print "I"
    return 0; //I want bar to point to foo[0].
} 

目标不是打印出来,而是将I的位置赋给string类型的指针,而不必将其转换为cstring。我甚至不确定它是否可能。

3 个答案:

答案 0 :(得分:9)

要从字符串指针中提取字符,您不必进行其他转换。

cout << foo[0];

答案 1 :(得分:1)

字符串类具有特定的成员函数,用于返回字符串的单个字符。

这可以帮到你:

  

char * bar =&amp; foo [0];
    cout&lt;&lt; *巴;

答案 2 :(得分:-3)

您的指针指向整个字符串。你需要让它指向一个角色。这个例子对我有用:

#include <string>
#include <iostream>

int main() 
{
    std::string foo = "I dont want to be a c string";
    char *bar = (char *)foo.c_str();
    std::cout<<*bar; //Prints "I"
    return 0;
}