所以我定义了这个:
static char randomstring[128];
现在每当我在某处提到它时都会这样:
char *x = randomstring;
一切正常,但每当我尝试对其内容做一些事情时:
char *x = ranomstring.front();
它根本不起作用,并且表达式必须具有类类型.. 这个问题对我来说很多。 我还应该提一下我在c ++的总菜鸟。
答案 0 :(得分:1)
您应该了解std::string(一个类)和c-style string(char*
或char[]
- 数组)之间的区别。
//this calls std::string constructor to convert c-style string to std::string:
string mystring = "hello world!";
//std::string has front()
char* front = mystring.front();
//this is old-style string
char oldstring[] = "hello again!";
//you can access it as pointer, not as class
char* first = oldstring;
//but you can iterate both
for(char c : mystring) cout << c;
for(char c : oldstring) cout << c;
//...because it uses std::begin which is specialized for arrays
答案 1 :(得分:0)
C ++中的数组不是类。它们是聚合体。所以他们没有方法。
请使用标准容器std::string
或标准容器std::vector
,它们可以动态更改其大小并使用方法front
。
例如
#include <string>
//...
std::string randomstring;
//filling the string
char x = randomstring.front();
答案 2 :(得分:0)
更改char * x = ranomstring.front(); to char * x =((string)ranomstring).front();