假设我有一个名为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。我甚至不确定它是否可能。
答案 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;
}