标题:输入首字母就就能判断是星期几,当我输入‘s’后,再输入‘u’,回车显示su ...
只看楼主
maqiangdemo
Rank: 2
等 级:论坛游民
帖 子:78
专家分:98
注 册:2014-2-26
结帖率:100%
已结贴  问题点数:20 回复次数:9 
输入首字母就就能判断是星期几,当我输入‘s’后,再输入‘u’,回车显示sunday,但是输入'a',回车却不显示saturday,类似的thursday显示,t
#include"stdio.h"
int main()
{ char letter;
  printf("please input a letter:\n");
  while((letter=getchar())!='y')
  {switch(letter)
  {  case's':
         printf("please enter second letter:\n");
      if((letter=getchar())=='a')
         printf("saturday\n");
      else if((letter=getchar())=='u')
         printf("sunday\n");
      else
         printf("error\n");
      break;
     case't':
         printf("please enter second letter:\n");
    if((letter=getchar())=='u')
        printf("tuesday\n");
    else if((letter=getchar())=='h')
        printf("thursday\n");
    else
        printf("error\n");
    break;
  case 'f':
      printf("friday\n");
      break;
  case 'w':
      printf("wednesday\n");
      break;
  case 'm':
      printf("monday\n");
      break;
}
}
  printf("error\n");
return 0;
}
搜索更多相关主题的帖子: thursday include please letter second 
2015-03-16 15:10
maqiangdemo
Rank: 2
等 级:论坛游民
帖 子:78
专家分:98
注 册:2014-2-26
得分:0 
输入 thursday 也显示,但是tuesday 却不显示,这是为什么
2015-03-16 15:12
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:10 
你這是輸入兩個字母了,不是首字母。

授人以渔,不授人以鱼。
2015-03-16 15:29
maqiangdemo
Rank: 2
等 级:论坛游民
帖 子:78
专家分:98
注 册:2014-2-26
得分:0 
回复 3楼 TonyDeng
那我要判断saturday和sunday,也得从第二个字母开始啊
2015-03-16 20:50
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:0 
你需要判斷的是子字符串,這個代碼沒法看。

授人以渔,不授人以鱼。
2015-03-16 21:20
maqiangdemo
Rank: 2
等 级:论坛游民
帖 子:78
专家分:98
注 册:2014-2-26
得分:0 
回复 5楼 TonyDeng
要求还是每次只输入一个字母啊,应该怎么弄,麻烦能简单说说麽
2015-03-16 21:36
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:0 
每次衹輸入一個字母,用getchar()這類函數是不行的,必須用點非標函數,這跟你的編譯器有關。

授人以渔,不授人以鱼。
2015-03-16 21:40
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
得分:10 
你这是写一个instr函数的节奏啊,用下述代码可基本满足你要求,但会得到多余你想要的单词(如输入t会得到tuesday、thursday以及saturday的后半截turday,可扩充下避免,代码多些)
程序代码:
#include <stdio.h>
int instr(int s,char *sp,char *cp)
{//从位置s处搜索sp包含cp的字符位置,如找到则返回位置,否则返回-1,不处理大小写
    int i,j;
    for(i=s;sp[i]!=0;i++)
    {
        j=0;
        while(cp[j]!=0&&sp[i+j]==cp[j])j++;
        if(cp[j]==0)return i;
    }
    return -1;
}
void main()
{
    char week[]="sunday,monday,tuesday,wednesday,thursday,friday,saturday",ss[20];
    int i;
    while(1)
    {
        printf("Please Input(0:Exit):");
        scanf("%s",ss);
        if(ss[0]=='0')break;
        for(i=0;;i++)
        {
            if((i=instr(i,week,ss))<0)break;//没找到中断搜索
            while(i>=0&&week[i]!=','&&week[i]!=0){printf("%c",week[i]);i++;}//找到输出
            if(i>0)printf("\n");
        }
    }
}


[ 本帖最后由 wmf2014 于 2015-3-16 21:59 编辑 ]

能编个毛线衣吗?
2015-03-16 21:51
maqiangdemo
Rank: 2
等 级:论坛游民
帖 子:78
专家分:98
注 册:2014-2-26
得分:0 
回复 8楼 wmf2014
谢谢
2015-03-18 14:50
maqiangdemo
Rank: 2
等 级:论坛游民
帖 子:78
专家分:98
注 册:2014-2-26
得分:0 
回复 7楼 TonyDeng
好的,我再弄弄,谢谢你
2015-03-18 14:50



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-442697-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021453 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved