【发布时间】:2020-07-09 16:29:46
【问题描述】:
我正在向一个函数发送一个名称数组,该函数应该计算每个名称的长度并将最大的一个作为字符数发回。我对最长和 names[i].length() 的比较从来都不是真的。我将最长初始化为-1,所以名字应该用该名称中的字符长度替换-1,但是在函数结束时它返回最长的值,初始值为-1
#include <iostream>
#include <string>
using namespace std;
int findLongestName(string names[], int numNames);
int main() {
string names[25] {"Bob Hope", "Steve Nice", "Mary Jane", "James Higgenbothem", "Ace Blue"};
int numNames = 5;
int longName;
longName = findLongestName(names, numNames);
cout << "Longest name is " << longName << " characters.\n";
system("PAUSE");
return 0;
}
int findLongestName(string names[], int numNames) {
int longest = -1;
for (int i = 0; i < numNames; i++) {
if (names[i].length() > longest) {
longest = names[i].length();
}
}
return longest;
}
有人可以看看并解释我做错了什么吗?我应该/想要从名字 James Higgenbothem 的函数中收到 18。
【问题讨论】:
标签: c++ string-length