2.查找最大串。用指针法编程,从键盘上输入多个字符串(每个串不超过5个字符且没有空格),用”*”作为输入结束的标记。从所输入的若干字符串中,找出一个最大的串,并输出该串。要求串的输入以及最大串的查找通过调用编写的函数实现。 (⚠注:以上两题请全部用指针实现!)
时间: 2024-05-10 15:15:26 浏览: 74
以下是用指针法编写的最大串查找程序:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 6 // 最大字符串长度
// 查找最大串的函数
char* findMaxStr(char** strArray, int count) {
char* maxStr = strArray[0];
for (int i = 1; i < count; i++) {
if (strlen(maxStr) < strlen(strArray[i])) {
maxStr = strArray[i];
}
}
return maxStr;
}
int main() {
char* strArray[100]; // 存储输入的字符串的指针数组
int count = 0; // 输入的字符串数量
// 输入字符串,以 * 结束
printf("请输入若干个字符串(每个串不超过5个字符且没有空格),以 * 结束:\n");
char str[MAX_LEN];
while (1) {
scanf("%s", str);
if (strcmp(str, "*") == 0) {
break;
}
strArray[count] = strdup(str);
count++;
}
// 查找最大串并输出
char* maxStr = findMaxStr(strArray, count);
printf("最大的串是:%s\n", maxStr);
// 释放内存
for (int i = 0; i < count; i++) {
free(strArray[i]);
}
return 0;
}
```
程序先定义了一个指针数组 `strArray`,用于存储输入的字符串。然后通过循环不断从键盘输入字符串,以 `*` 结束输入。输入过程中,每个字符串被存储到 `strArray` 数组中,并且输入的字符串数量 `count` 递增。输入结束后,调用 `findMaxStr()` 函数查找最大的串,并输出结果。最后释放动态分配的内存。
函数 `findMaxStr()` 定义了两个参数:一个是字符串的指针数组,另一个是字符串的数量。函数通过循环遍历数组,找到长度最长的字符串,并返回该字符串的指针。
阅读全文