c语言实现编写一个函数,从num个字符串中找出最长的一个字符串,并通过形参指针max传回该串地址。(注意: 主函数中用****作为结束输入的标志
时间: 2023-12-02 19:03:03 浏览: 85
#include <stdio.h>
#include <string.h>
void find_longest(char **strings, int num, char **max) {
*max = *strings; // 默认最长的字符串是第一个字符串
for (int i = 1; i < num; i++) { // 从第二个字符串开始比较
if (strlen(*(strings + i)) > strlen(*max)) { // 如果当前字符串比最长的字符串还要长
*max = *(strings + i); // 更新最长的字符串
}
}
}
int main() {
char *strings[100]; // 用指针数组存储字符串
int num = 0;
char input[100];
printf("Please enter strings (end with ****):\n");
while (1) {
scanf("%s", input);
if (strcmp(input, "****") == 0) { // 如果输入是结束标志
break; // 结束输入循环
}
strings[num] = (char*)malloc(strlen(input) + 1); // 动态分配存储空间
strcpy(strings[num], input); // 将输入的字符串复制到分配的空间中
num++; // 统计输入的字符串个数
}
char *max;
find_longest(strings, num, &max); // 调用函数查找最长的字符串
printf("The longest string is: %s\n", max);
for (int i = 0; i < num; i++) {
free(strings[i]); // 释放动态分配的存储空间
}
return 0;
}
阅读全文