C 语言跪,求解决方法
本帖最后由 翡翠墨水 于 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 啊 又是C 召唤W@Whisper1166 @42#
不过我觉得这个用字符遍历处理就可以做的啊 ,应该不用指针的吧
或者干脆就是替换,用正则表达式,简单快捷~ @ou#
写个函数转换吧..
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;
}
}
仅限字母均大写,没有干扰字符的情况 本帖最后由 翡翠墨水 于 2013-3-24 22:36 编辑
foodszhu 发表于 2013-3-20 22:25 static/image/common/back.gif
写个函数转换吧..
int change(char c)
{
打破脑袋想了一个晚上解决了
已经碾压了
不过有位同学不负责任的直接照用了。。然后 被老师抓到。。。。。我只好3这段Code了
思路就是 使用了case, casea-c 是2 这样来的 这个太简单了。。 本帖最后由 Evanue 于 2013-3-24 14:09 编辑
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;
}
else if(c > 'a' && c < 'z')
{
*phoneNumber = charToNum;
}
++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);
}
两个方法 稍微有一点点差距 本帖最后由 翡翠墨水 于 2013-3-24 22:37 编辑
Evanue 发表于 2013-3-24 13:59 static/image/common/back.gif
void translateNumber1(int * optionStats, char * phoneNumber)
{
char* str ...
你我的差不多。。我是刚刚不得不3掉code。。。学校里面也有人上这个站。。。code 要是一样的话就。。两个人都要审查。。那就悲剧了
才说的。。就妥妥的被抄了。。。 貌似不难,明天再试试吧
页:
[1]