【发布时间】:2024-01-04 11:51:01
【问题描述】:
我正在与 c 进行约会日历程序。我的程序使用用户输入的命令添加了一个新约会:“A'description''mm''dd''hh'” 其中 description 是一个最多 20 个字符的字符串,mm 是月,dd 是天,hh 是小时。月、日和小时可以是 1 或 2 个字符长。 我试图实现 readInput 函数,它通过空格键拆分输入字符串并返回一个字符数组,其中包含:[description, mm, dd, hh] 所以我可以很容易地得到:
desc = array[1];
month = array[2];
day = array[3];
hour = array[4];
实现这个功能比我想象的要难,而且我失败得很惨。我不想要指针,只想要一个包含字符串的基本 char 数组。我应该如何实现这个?下面是我的主要功能。
int main()
{
struct Calendar c;
c.numOfAppointments = 0;
while (true) {
char str[30];
printf("Command: ");
scanf("%[^\n]%*c", str);
if (str[0] == 'A')
{
char command = readInput(str); /*implement this */
}
else if (str[0] == 'L')
{
printCalendar(c);
}
else if (str[0] == 'Q')
{
printf("Exiting program...");
break;
}
}
}
假设我输入:牙医 4 20 10
返回的数组应该是:["dentist","4","20","10"]
【问题讨论】:
-
感谢您添加示例数据。您说您希望结果为“char 数组”(char *),但您的示例输出是字符串数组(char **)。为什么不希望将结果作为结构体呢?
-
牙医前的“A”是什么?