| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2552 人关注过本帖, 1 人收藏
标题:呀,郁闷了!这个switch怎么用啊!各位大哥帮忙看看!
只看楼主 加入收藏
独孤小梦
Rank: 1
等 级:新手上路
威 望:1
帖 子:338
专家分:0
注 册:2008-6-5
结帖率:80%
收藏(1)
 问题点数:0 回复次数:20 
呀,郁闷了!这个switch怎么用啊!各位大哥帮忙看看!
各位大哥帮帮忙啊!这里的问题已经有2天没解决出来!实在没办法才到论坛问下!谢谢各位了!
问题如下:
#include"stdio.h"
#include"malloc.h"
#define E 欢迎您的到来!
void main()
{
    char *shuru,shuru2,str[8],*a="进入",*b="退出";           这里我一开始没有str数组!以至于后来的输入不没解决的办法,就使用了一个数组,然后使指针指向它……不知道我这里这样处理对不对!(请看@这里)
    printf("%s\t%s\n",a,b);
    shuru=str;
    scanf("%s",shuru);   @   就是这里!还有比这样高效的吗?
    switch(*shuru)      我问的问题,就在这里,这里使用switch,判断*shuru……
    {
    case '进入':printf("调用进入软件的函数");break;   //*调用进入软件的函数*//
    case '*b':printf("再见");break;  //*这里需要加入goto命令!*//
    default:printf("您输入错误");break;
    }
}
case '进入':printf("调用进入软件…………
这里我一开始时是“case '*a':printf……”的!能编译出来,可是无论输入什么都出现“您输入错误”
我把*a改为a,然后在编译(能编译出来),然后输入a,竟然能输入“调用进入软件的函数”……
这里我搞了几天了,不知道怎么解决才能输入“进入”,然后才在“case '进入':printf("调用进入软件的……”这里调用以后写好的函数……各位大哥帮帮忙啊!谢谢了!
搜索更多相关主题的帖子: switch shuru str printf break 
2008-06-18 16:47
now
Rank: 1
来 自:广州
等 级:新手上路
帖 子:544
专家分:0
注 册:2007-11-9
收藏
得分:0 
1 、不可使用未初始化的野指针;char *shuru,仅分配用来存储指针本身的内存空间;并没有分配存储数据的空间;
2、shuru=str; shuru指向数组str;明确  *shuru指的是什么?也必须明确汉字在机内存储方式又是怎样?
printf("%d",*shuru);可查看;
————————————--

case -67:
case -51:

GIS
Geographic Information System
你在哪里?——》你的坐标?
2008-06-18 18:35
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
收藏
得分:0 
程序代码:
/*******************************************************************************

        作个字母的,谨作参考——主要是对DOS下输入汉字或者说汉字的ASC码不太
    了解。

        程序拙劣,还望大家指教。谢谢。
*******************************************************************************/

#include<stdio.h>
#include<string.h>
int main(void)
{
         char a[10];
         char jinru[6]="jinru";
         char tuichu[7]="tuichu";
         int i,j=0;
         while(j!= 1 && j!= 2 )
         {
                printf("请输入:“jinru”或者“tuichu”\n");
                gets(a);
                for(i=0;i<strlen(a)&&a[0]=='j';i++)
                {
                        if(jinru[i]==a[i]&&strlen(jinru)==strlen(a))    j=1;
                        else  {j=0;   break;}
                }
                for(i=0;i<strlen(a)&&a[0]=='t';i++)
                {
                        if(tuichu[i]==a[i]&&strlen(tuichu)==strlen(a))   j=2;
                        else {j=0;    break; }
                }
                switch(j)
                {
                        case 1:  printf("调用进入软件的函数!\n");
                                 break;
                        case 2:  printf("再见\n");
                                 break;
                        default: printf("您输入错误\n");

                }
        }
        getch();
}





[[it] 本帖最后由 广陵绝唱 于 2008-6-19 09:24 编辑 [/it]]
2008-06-19 01:44
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
strcmp吧。swtich是不可能的。
C的switch功能很弱的。

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-06-19 02:32
独孤小梦
Rank: 1
等 级:新手上路
威 望:1
帖 子:338
专家分:0
注 册:2008-6-5
收藏
得分:0 
#include"stdio.h"
#include"malloc.h"
#define E 欢迎您的到来!
void main()
{
    char *shuru,shuru2,str[8],*a="进入",*b="退出";
    printf("%s\t%s\n",a,b);
    shuru=str;
    scanf("%s",shuru);
    switch(*shuru)
    {
    case '*a':printf("调用进入软件的函数");break;   //*调用进入软件的函数*//
    case '*b':printf("再见");break;  //*这里需要加入goto命令!*//
    default:printf("您输入错误");break;
    }
}


啊,我的问题是不是出在DOS下输入中文的没处理好?
switch这里没处理好是吧!我在修改下……谢谢……


回2楼的:
#include<stdio.h>
#include<string.h>
int main(void)
{
         char a[10];
         char jinru[6]="jinru";
         char tuichu[7]="tuichu";
         int i,j=0;
         while(j!= 1 && j!= 2 )
         {
                printf("请输入:“jinru”或者“tuichu”\n");
                gets(a);
                for(i=0;i<strlen(a)&&a[0]=='j';i++)  //这里,strlen(a)那里来的啊?啥意思?
                {
                        if(jinru[i]==a[i]&&strlen(jinru)==strlen(a))    j=1;
                        else  {j=0;   break;}
                }
……………………………………
2008-06-20 15:13
独孤小梦
Rank: 1
等 级:新手上路
威 望:1
帖 子:338
专家分:0
注 册:2008-6-5
收藏
得分:0 
晕,怎么回事,帖沉了!大家帮帮忙啊!
2008-06-20 16:18
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
'*a'有这种用法么?

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-06-20 16:19
独孤小梦
Rank: 1
等 级:新手上路
威 望:1
帖 子:338
专家分:0
注 册:2008-6-5
收藏
得分:0 
……我只是想和*a对比,然后在选择输出的……不知道怎么办?我这个程序是不是在DOS下中文不行,程序如果用英文就OK呢?!
2008-06-20 16:23
flyue
Rank: 10Rank: 10Rank: 10
来 自:江南西道
等 级:贵宾
威 望:19
帖 子:3465
专家分:1563
注 册:2006-6-20
收藏
得分:0 
恩,switch是不好用,只能用来切换基本数据类型,连类都不支持

天之道,损有余而补不足.人之道则不然,损不足以奉有余.孰能有余以奉天下,唯有道者.
2008-06-20 16:30
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
用连续的if吧……
switch本来就是对连续if的底层优化而已,说到底还是if链功能比较强大……

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-06-20 16:32
快速回复:呀,郁闷了!这个switch怎么用啊!各位大哥帮忙看看!
数据加载中...
 
   



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

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