反向搜索,通过星期返回序号
错误代码
int getindex(char *s) { char* s1[7]={"Sunday","Monday","Tuesday","Wednesday", "Thursday","Friday","Saturday"}; int i; int flag=0; for(i=0;i<7;i++) { if(s1[i]==*s) { flag=1; break;} } if(flag==0){return -1;} return i; }
int getindex(char *s) { char* s1[7]={"Sunday","Monday","Tuesday","Wednesday", "Thursday","Friday","Saturday"}; int i; int flag=0; for(i=0;i<7;i++) { if(strcmp(s1[i],s)==0) { flag=1; break;} } if(flag==0){return -1;} return i; }
优化:flag冗余问题
#include <stdio.h> #include <string.h> // 添加字符串操作头文件 int getindex(const char *s) { // 添加 const 限定符 const char *s1[] = { // 使用 const 修饰字符串常量 "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", // 修正拼写错误 "Friday", "Saturday" }; int i; for (i = 0; i < 7; i++) { if (strcmp(s1[i], s) == 0) { // 使用 strcmp 进行字符串比较 return i; // 找到直接返回索引 } } return -1; // 未找到返回 -1 }