搜索
有爱,有技术,有你^_^)y
╱人◕‿‿◕人╲订下契约(注册新用户)

合作站点账号登陆

QQ登录

只需一步,快速开始

快捷导航
查看: 682|回复: 7
收起左侧

C 语言跪,求解决方法

[复制链接]

该用户从未签到

4

主题

9

好友

2215

积分

Continue

积分
2215
发表于 2013-3-20 18:35:30 | 显示全部楼层 |阅读模式

╱人◕‿‿◕人╲定下契约

您需要 登录 才可以下载或查看,没有账号?╱人◕‿‿◕人╲订下契约(注册新用户)

x
本帖最后由 翡翠墨水 于 2013-3-20 18:37 编辑

void translateNumber(int * optionStats, char * phoneNumber)
{
           
}
收到的其中的一个
是使用Char 和 getstring 来 检查输入的字符串,是字母的立刻转换为数字

指针和get string 不熟悉,求解决方式……

比如输入
1-800-COL-LECT
就能得到
1-800-265-5328

2=ABC, 3=DEF, 4=GHI, 5=JKL, 6=MNO, 7=PQRS, 8=TUV, 9=WXYZ
签名被小宅喵吞掉了~~~~(>_<)~~~~
回复

使用道具 举报

签到天数: 3 天

连续签到: 1 天

[LV.2]偶尔看看I

41

主题

60

好友

2万

积分

第一章

守望者

积分
21763
发表于 2013-3-20 20:58:13 | 显示全部楼层
啊 又是C 召唤W  @Whisper1166   

不过我觉得这个用字符遍历处理就可以做的啊 ,应该不用指针的吧
或者干脆就是替换,用正则表达式,简单快捷~

点评

……意见相同,不过指针的话方便一些  发表于 2013-3-20 21:11
如果有来生,要做一棵树,站成永恒,没有悲欢的姿势。一半在土里安详,一半在风里飞扬,一半洒落阴凉,一半沐浴阳光,非常沉默非常骄傲,从不依靠从不寻找。
回复 支持 反对

使用道具 举报

该用户从未签到

30

主题

127

好友

2万

积分

技术宅认证程序员

重度中二患者

积分
28325
发表于 2013-3-20 22:25:39 | 显示全部楼层
写个函数转换吧..
int change(char c)
{
    if(c < 65)
    {
        return c;
    }
    else
    {
        char f = (c - 65) / 3 + 2;
        if(f < 10)
        {
            return f + 48;
         }
        else
        {
            return 9 + 48;
         }
}
仅限字母均大写,没有干扰字符的情况

评分

参与人数 1宅币 +10 收起 理由
Mr_Alex + 10 →_→手滑

查看全部评分

等死星人
回复 支持 反对

使用道具 举报

该用户从未签到

4

主题

9

好友

2215

积分

Continue

积分
2215
 楼主| 发表于 2013-3-22 21:49:41 | 显示全部楼层
本帖最后由 翡翠墨水 于 2013-3-24 22:36 编辑

打破脑袋想了一个晚上解决了

[mw_shl_code=c,true]

已经碾压了


不过有位同学不负责任的直接照用了。。然后 被老师抓到。。。。。我只好3这段Code了

思路就是 使用了case, case  a-c 是2 这样来的
签名被小宅喵吞掉了~~~~(>_<)~~~~
回复 支持 反对

使用道具 举报

该用户从未签到

8

主题

16

好友

3970

积分

序章

积分
3970
发表于 2013-3-24 12:52:18 | 显示全部楼层
这个太简单了。。
签名被小宅喵吞掉了~~~~(>_<)~~~~
回复 支持 反对

使用道具 举报

该用户从未签到

8

主题

16

好友

3970

积分

序章

积分
3970
发表于 2013-3-24 13:59:24 | 显示全部楼层
本帖最后由 Evanue 于 2013-3-24 14:09 编辑

[mw_shl_code=c,true]void translateNumber1(int * optionStats, char * phoneNumber)
{
        char* str = phoneNumber;

        printf("%s\n", str);

        //2=ABC, 3=DEF, 4=GHI, 5=JKL, 6=MNO, 7=PQRS, 8=TUV, 9=WXYZ

        int charToNum[] = {
                '2','2','2',
                '3','3','3',
                '4','4','4',
                '5','5','5',
                '6','6','6',
                '7','6','6',
                '8','8','8',
                '9','9','9','9'};


        while(*phoneNumber != '\0')
        {
                int c = *phoneNumber;

                if(c > 'A' && c < 'Z')
                {
                        *phoneNumber = charToNum[c - 'A'];
                }
                else if(c > 'a' && c < 'z')
                {
                        *phoneNumber = charToNum[c - 'a'];
                }

                ++phoneNumber;
        }

        printf("%s\n", str);
}

void translateNumber(int * optionStats, char * phoneNumber)
{
        char* str = phoneNumber;
        
        printf("%s\n", str);

        int charToNum[] = {'2','3','4','5','6','7','8','9','9'}; //2=ABC, 3=DEF, 4=GHI, 5=JKL, 6=MNO, 7=PQRS, 8=TUV, 9=WXYZ

        while( *phoneNumber != '\0' )
        {
                char c = *phoneNumber;

                if(c > 'A' && c < 'Z')
                {
                        *phoneNumber = charToNum[(c - 'A')/3];
                }
                else if(c > 'a' && c < 'z')
                {
                        *phoneNumber = charToNum[(c - 'a')/3];
                }

                ++phoneNumber;
        }

        printf("%s\n", str);
}[/mw_shl_code]
两个方法   稍微有一点点差距
签名被小宅喵吞掉了~~~~(>_<)~~~~
回复 支持 反对

使用道具 举报

该用户从未签到

4

主题

9

好友

2215

积分

Continue

积分
2215
 楼主| 发表于 2013-3-24 21:48:38 | 显示全部楼层
本帖最后由 翡翠墨水 于 2013-3-24 22:37 编辑
Evanue 发表于 2013-3-24 13:59
[mw_shl_code=c,true]void translateNumber1(int * optionStats, char * phoneNumber)
{
        char* str ...

你我的差不多。。我是刚刚不得不3掉code。。。学校里面也有人上这个站。。。code 要是一样的话就。。两个人都要审查。。那就悲剧了
才说的。。就妥妥的被抄了。。。
签名被小宅喵吞掉了~~~~(>_<)~~~~
回复 支持 反对

使用道具 举报

该用户从未签到

4

主题

14

好友

3071

积分

序章

积分
3071
发表于 2013-4-16 00:40:54 | 显示全部楼层
貌似不难,明天再试试吧
签名被小宅喵吞掉了~~~~(>_<)~~~~
回复 支持 反对

使用道具 举报

本版积分规则

小黑屋|手机版|技术宅(Z站|基宅) ( 粤ICP备18082987号-1 )

GMT+8, 2025-7-8 01:21 , Processed in 0.107483 second(s), 26 queries , Redis On.

Copyright © 2018 技术宅社区

Powered by Discuz! X3.5

快速回复 返回顶部 返回列表