C语言实现:【问题描述】查找星期:定义一个指针数组将下表的星期信息组织起来,输入一个字符串,在表中查找,若存在,输出该字符串在表中的序号,否则输出-1。试编写相应程序。提示:参考ppt77页,指针数组 字符串的比较可以使用strcmp函数。表项起始从1开始。【样例输入】 Tuesday 【样例输出】 3 【样例输入】 Muesday 【样例输出】 -1
时间: 2023-12-20 20:04:19 浏览: 26
以下是C语言实现的代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
char *weekdays[] = {"Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"};
char str[10];
int i;
printf("Enter a weekday: ");
scanf("%s", str);
for (i = 0; i < 7; i++) {
if (strcmp(str, weekdays[i]) == 0) {
printf("%d\n", i + 1);
return 0;
}
}
printf("-1\n");
return 0;
}
```
首先定义了一个指针数组`weekdays`,存储了星期的信息。然后输入一个字符串,使用`strcmp`函数逐个比较字符串并查找是否存在于指针数组中,若存在则输出其序号,否则输出-1。需要注意的是,表项从1开始,因此输出时需要将序号加1。
相关问题
C语言 查找星期 【问题描述】查找星期:定义一个指针数组将下表的星期信息组织起来,输入一个字符串,在表中查找,若存在,输出该字符串在表中的序号,否则输出-1。试编写相应程序。提示:参考ppt77页,指针数组 字符串的比较可以使用strcmp函数。表项起始从1开始。 image.png 【输入形式】 【输出形式】 【样例输入】 Tuesday 【样例输出】 3
以下是实现题目要求的C代码:
```c
#include <stdio.h>
#include <string.h>
int main(void)
{
char *weekdays[] = {"", "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
char input[20];
int i, found = 0;
printf("Please enter a weekday: ");
scanf("%s", input);
for (i = 1; i <= 7; i++) {
if (strcmp(input, weekdays[i]) == 0) {
printf("%d\n", i);
found = 1;
break;
}
}
if (!found) {
printf("-1\n");
}
return 0;
}
```
程序中定义了一个指针数组 `weekdays`,数组中存储了一周的星期信息,其中下标为0的元素为空串,下标为1~7的元素分别对应周日到周六。接收用户输入的字符串,通过循环遍历 `weekdays` 数组,通过 `strcmp` 函数比较字符串是否相等,如果相等则输出该字符串在数组中的下标,否则继续遍历。如果遍历结束后仍未找到,则输出-1。
需要注意的是,在使用 `strcmp` 函数时,需要使用 `#include <string.h>` 头文件。
C语言: 如何将一个输入字符串转为数组
您可以使用 C 语言中的循环来逐个读取字符串中的每个字符,并将它们存储到数组中。具体实现方法可以参考如下代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100]; //定义一个字符串变量
int len, i, arr[100]; //定义长度、循环变量和数组
printf("请输入一个字符串:");
scanf("%s", str); //读取输入的字符串
len = strlen(str); //计算字符串长度
//循环读取字符串中的每个字符并存储到数组中
for (i = 0; i < len; i++) {
arr[i] = str[i];
}
//输出数组中存储的字符
printf("转换后的数组为:\n");
for (i = 0; i < len; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
这样就可以把一个输入的字符串转换为一个整型数组了。