本文共 850 字,大约阅读时间需要 2 分钟。
为了实现该函数,我们可以创建一个包含所有星期几的数组,然后用循环来查找输入字符串是否存在于数组中。如果存在,返回对应的序号;如果不存在或输入无效,则返回-1。
strcmp函数进行字符串比较。如果找到匹配项,返回当前星期的序号。int getindex(char *s) { if (s == NULL || strlen(s) == 0) { return -1; } static const char *weekays[] = { "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" }; int index = -1; for (int i = 0; i < 7; i++) { if (strcmp(s, weekays[i]) == 0) { index = i; break; } } return index;} s是否为空或NULL,如果是,返回-1。weekays,包含所有有效的星期几字符串。s是否与当前元素匹配。如果匹配,记录当前索引i并跳出循环。这个实现高效且直接,确保每个输入字符串只需进行一次循环比较,时间复杂度为O(7),即常数时间。
转载地址:http://ddooz.baihongyu.com/