题目:编写程序,从键盘输入3个字符串,分别存入字符数组r,s和t中(数组大小为20),比较字符串大小,将最大字符串存于字符数组m中(数组大小为20)并输出。提示:程序应包含头文件<string.h> 要求:程序中不许定义没提到的变量
时间: 2024-10-23 17:09:21 浏览: 12
要完成这个题目,你需要使用`fgets()`函数从键盘读取字符串,然后使用`strcmp()`函数比较它们的大小。由于字符串数组的大小限制,你需要确保不会超过数组长度。这里是一个简单的C语言程序示例:
```c
#include <stdio.h>
#include <string.h>
int main() {
char r[20], s[20], t[20], m[20] = "";
// 从键盘读取三个字符串
printf("Enter the first string (max 19 characters): ");
fgets(r, sizeof(r), stdin);
r[strcspn(r, "\n")] = '\0'; // 去除换行符
printf("Enter the second string (max 19 characters): ");
fgets(s, sizeof(s), stdin);
s[strcspn(s, "\n")] = '\0';
printf("Enter the third string (max 19 characters): ");
fgets(t, sizeof(t), stdin);
t[strcspn(t, "\n")] = '\0';
// 比较字符串并更新m数组
if (strcmp(r, s) > 0 && strcmp(r, t) > 0) {
strcpy(m, r);
} else if (strcmp(s, t) > 0) {
strcpy(m, s);
} else {
strcpy(m, t);
}
// 输出最大字符串
printf("The largest string is: %s\n", m);
return 0;
}
```
在这个程序中,我们首先声明了四个字符数组,然后使用`fgets()`获取用户输入并存储到相应的数组中。接下来使用`strcmp()`进行比较,并根据结果使用`strcpy()`将最大字符串复制到`m`数组中。注意,为了防止意外地超过数组大小,我们在读取后移除了字符串末尾可能存在的换行符。
阅读全文