在主函数中输入num个字符串,写一个函数,从传入的num个字符串中找出最长的一个字符串,并通过形参指针max传回该串地址,在主函数中输出。(注意:用****作为结束输入的标志。) 用c语言编写
时间: 2024-11-09 13:21:58 浏览: 75
【Python】利用map和reduce编写一个str2float函数,把字符串’123.456’转换成浮点数123.456
在C语言中,你可以使用以下几个步骤编写这个程序:
首先,创建一个函数 `findLongestString` 来接收一个字符串数组和一个指向最大字符串地址的指针。在这个函数里,你需要遍历数组,同时更新指向最长字符串的指针。
```c
#include <stdio.h>
#include <string.h>
// 定义一个函数,用于查找最长的字符串并返回其地址
void findLongestString(char str[], char **max) {
*max = NULL; // 初始化max为NULL
int len;
for (int i = 0; i < num && str[i] != '\0'; i++) { // 遍历直到遇到'****'
len = strlen(&str[i]); // 计算当前字符串长度
if (len > (*max)->length || (*max == NULL)) { // 如果更长或尚未找到,则更新最长字符串
*max = &str[i]; // 更新max为当前字符串地址
}
}
}
int main() {
char strings[num][100];
char *longestStr = NULL;
printf("请输入%s个字符串(以'****'结束):", num);
for (int i = 0; i < num; i++) {
fgets(strings[i], sizeof(strings[i]), stdin); // 读取用户输入
if (strings[i][strlen(strings[i]) - 1] == '*' && strings[i][strlen(strings[i]) - 2] == '*') {
break; // 找到'****'则停止输入
}
}
findLongestString(strings, &longestStr); // 调用函数找最长字符串
printf("最长的字符串是: %s\n", longestStr); // 输出结果
return 0;
}
```
阅读全文