在主函数中输入num个字符串,写一个函数,从传入的 num 个字符串中 找出最长的一个字符串,并通过形参指针 max传回该串地址,在主函数中输出。 (注意:用****作为结束输入的标志。) 程序代码:
时间: 2024-12-23 10:13:35 浏览: 17
下面是一个简单的 C++ 示例程序,它会读取用户输入的若干字符串,直到遇到"****"为止,并找到最长的那个字符串:
```cpp
#include <iostream>
#include <string>
using namespace std;
// 函数声明,接受指向字符串指针并返回最长字符串地址
void findLongestString(string* &maxStr, int num);
int main() {
string input;
string* longest = nullptr; // 初始化最长字符串为空
int num = 0;
cout << "请输入字符串 (输入'****'结束): ";
while (getline(cin, input) && !input.empty()) {
num++;
if (longest == nullptr || input.length() > longest->length()) { // 如果当前字符串更长或第一次比较
// 更新最长字符串指针
longest = new string(input);
}
cout << "已输入第 " << num << " 个字符串: " << input << endl;
// 调用函数,传递最长字符串地址
findLongestString(longest, num);
}
// 输出最长字符串
if (longest != nullptr) {
cout << "最长的字符串是: " << *longest << endl;
delete longest; // 释放内存
} else {
cout << "未输入有效的字符串。" << endl;
}
return 0;
}
// 实现查找最长字符串的函数
void findLongestString(string* &maxStr, int num) {
cout << "最长字符串是(长度:" << (*maxStr).length() << "): " << *maxStr << endl;
}
```
阅读全文