关于strcmp函数的疑惑

Phantom03038 2016-12-22 03:04:00

#include<stdio.h>
#include<string.h>
void main()
{
int i, ri, repeat,flag;
char *date[] = { "Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday" };
char str[80];

scanf("%d", &repeat);
getchar();
for (ri = 1; ri <= repeat; ri++) {
scanf("%s", str);
flag = -1;
for (i = 1; i < 7; i++) {
if (strcmp(str,date[i])==0)
flag = i + 1;
}
printf("%d\n", flag);
}
}

输入这段代码,打进Sunday,为什么显示的是-1呢,我感觉是函数的问题。
...全文
229 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
小灸舞 版主 2016-12-22
  • 打赏
  • 举报
回复
代码功能归根结底不是别人帮自己看或讲解或注释出来的;而是被自己静下心来花足够长的时间和精力亲自动手单步或设断点或对执行到某步获得的中间结果显示或写到日志文件中一步一步分析出来的。
提醒:再牛×的老师也无法代替学生自己领悟和上厕所!
单步调试和设断点调试(VS IDE中编译连接通过以后,按F10或F11键单步执行,按Shift+F11退出当前函数;在某行按F9设断点后按F5执行停在该断点处。)是程序员必须掌握的技能之一。
kuangbao9 2016-12-22
  • 打赏
  • 举报
回复
for (i = 1; i < 7; i++) 这一句错了, 改为]for (i = 0; i < 7; i++)
qzk1993 2016-12-22
  • 打赏
  • 举报
回复
循环从1开始,Sunday是date[0],根本没匹配到,把for循环里面的i=1改成i=0试试

70,021

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧