本题要求实现函数,可以返回一个给定月份的英文名称。 函数接口定义: char *getmonth( int n )
时间: 2024-03-17 20:47:33 浏览: 190
好的,以下是实现该函数的代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char *getmonth(int n) {
char *monthNames[] = {"January", "February", "March", "April", "May", "June", "July",
"August", "September", "October", "November", "December"};
if (n < 1 || n > 12) {
return NULL;
}
char *result = (char *)malloc(strlen(monthNames[n-1]) + 1);
strcpy(result, monthNames[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;
}
```
该函数首先定义了一个包含所有月份英文名称的字符串数组 `monthNames`,然后根据输入的参数 `n` 来返回对应的月份名称。如果传入的参数 `n` 不在 1-12 范围内,函数会返回空指针。函数通过动态内存分配来创建存储月份名称的字符串,并在返回之前释放该内存。主函数通过调用 `getmonth` 函数来获取月份名称,并根据函数的返回值来输出结果。
阅读全文