gpt4 book ai didi

C++字符串长度问题

转载 作者:行者123 更新时间:2023-11-30 00:58:41 26 4
gpt4 key购买 nike

所以我正在练习 STL 字符串类,但我不明白为什么 string->length 函数不会得出正确答案 5,而只有 2(无论实际长度如何)。这是我要运行的程序,但它认为 ->begin 和 ->end 之间只有 2 个项目:

void testFunc(string _string[])
{
int _offset = 0;
string::const_iterator i;
for (i = _string->begin(); i != _string->end(); i++)
{
cout << _offset << "\t";
cout << _string[_offset] << endl;
_offset ++;
}
};

int main()
{
string Hello[] = {"Hi", "Holla", "Eyo", "Whatsup", "Hello"};

testFunc(Hello);

char response;
cin >> response;
return 0;
}

输出是:

0     Hi
1 Holla

谢谢! =)

最佳答案

您正在遍历第一个字符串,即“Hi” - 它有两个字符,因此您会看到两个条目。

如果你想使用所有 STL,你需要一个 vector 而不是 C 风格的数组(即 vector<string> ,并在其上使用迭代器。

如果你不想使用 STL:

    void testFunc(string *strings, int stringCount)
{
int _offset = 0;

while (stringCount--)
{
cout << _offset << "\t";
cout << _strings[_offset] << endl;
_offset ++;
}
};

int main()
{
string Hello[] = {"Hi", "Holla", "Eyo", "Whatsup", "Hello"};

testFunc(Hello, sizeof(Hello) / sizeof(Hello[0]));

char response;
cin >> response;
return 0;
}

关于C++字符串长度问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5826977/

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