本题要求实现函数,可以返回一个给定月份的英文名称。 函数接口定义: char *getmonth( int n ); 函数getmonth应返回存储了n对应的月份英文名称的字符串头指针。如果传入的参数n不是一个代表月份的数字,则返回空指针NULL。
时间: 2024-03-17 19:47:28 浏览: 50
Date对象之获取和设置月份-getMonth&setMonth(教辅)
好的,我明白了。以下是实现该函数的代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char *getmonth(int n) {
char *months[] = {"January", "February", "March", "April", "May", "June", "July",
"August", "September", "October", "November", "December"};
if (n < 1 || n > 12) {
return NULL;
}
char *result = (char *)malloc(sizeof(char) * (strlen(months[n - 1]) + 1));
strcpy(result, months[n - 1]);
return result;
}
int main() {
int n;
printf("Enter a month number (1-12): ");
scanf("%d", &n);
char *month = getmonth(n);
if (month == NULL) {
printf("Invalid month number!\n");
} else {
printf("Month name: %s\n", month);
free(month);
}
return 0;
}
```
该函数首先定义了一个包含所有月份英文名称的字符串数组 `months`,然后根据输入的参数 `n` 来返回对应的月份名称。如果传入的参数 `n` 不在 1-12 范围内,函数会返回空指针。函数通过动态内存分配来创建存储月份名称的字符串,并在返回之前释放该内存。主函数通过调用 `getmonth` 函数来获取月份名称,并根据函数的返回值来输出结果。
阅读全文