gpt4 book ai didi

c++ - 错误 : request for member size in . .. 非类类型 char

转载 作者:搜寻专家 更新时间:2023-10-31 01:52:54 25 4
gpt4 key购买 nike

我不太擅长编程,也没有经验,而且这是针对老师帮助微乎其微的类(class)。

标题是我遇到的错误。这是函数:

void CapFormat (string Names, int NameCount)
{
int Comma;
int c;
int d;

string::size_type len;

for(c = 0; c < NameCount; c ++)
{
len = static_cast<unsigned> (Names[c].size); //error starts here
for(d = len; d > 0; d --)
{
tolower((Names[c].at(d))); //supposed to lower cases every letter
}
touppper(Names[c].at(0)); //supposed to upper case first letter
Comma = Names[c].find(","); //supposed to find a comma between last and first names
Comma = Comma + 1;
toupper(Names[c].at(Comma)); //Error here as well. supposed to then upper case letter after the comma.
}
}

这是错误的扩展版本:

In function âvoid CapFormat(std::string, int)â:
error: request for member âsizeâ in âNames.std::basic_string<_CharT, _Traits, _Alloc>::operator[] [with _CharT = char, _Traits = std::char_traits<char>, _Alloc = std::allocator<char>](((long unsigned int)c))â, which is of non-class type âcharâ
error: request for member âatâ in âNames.std::basic_string<_CharT, _Traits, _Alloc>::operator[] [with _CharT = char, _Traits = std::char_traits<char>, _Alloc = std::allocator<char>](((long unsigned int)c))â, which is of non-class type âcharâ
error: request for member âatâ in âNames.std::basic_string<_CharT, _Traits, _Alloc>::operator[] [with _CharT = char, _Traits = error: âtouppperâ was not declared in this scope
error: request for member âfindâ in âNames.std::basic_string<_CharT, _Traits, _Alloc>::operator[] [with _CharT = char, _Traits = std::char_traits<char>, _Alloc = std::allocator<char>](((long unsigned int)c))â, which is of non-class type âcharâ
error: request for member âatâ in âNames.std::basic_string<_CharT, _Traits, _Alloc>::operator[] [with _CharT = char, _Traits = std::char_traits<char>, _Alloc = std::allocator<char>](((long unsigned int)c))â, which is of non-class type âcharâ

Cstring、cctype、string都包含在内。我直接从我的书中复制了语法,一切都应该是有序的,但错误仍然存​​在。

如有帮助,我们将不胜感激。

最佳答案

首先,您在代码中使用 Names 参数的方式表明它应该是一个数组。但是您将其声明为单个对象。因此出现错误。

参数显然应该被声明为

void CapFormat (string Names[], int NameCount)

void CapFormat (string *Names, int NameCount)

(这是一回事。)将此与您的书进行比较。要么是你的错误,要么是书中的错误。

其次,size 行应该看起来像

len = static_cast<unsigned>(Names[c].size());

(注意额外的 ())。那里绝对没有必要将 static_cast 转换为 unsigned。就这样

len = Names[c].size();

static_cast 是您的主意吗?如果它在书中,那将是一本相当奇怪的书。

不适当的 int 变量和适当的 string::size_type 变量的不合逻辑的混合让我怀疑这实际上是从一本书中摘录的。

关于c++ - 错误 : request for member size in . .. 非类类型 char,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11911760/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com