4输入:”John Smith Green Carlos”,输出:”574”;
这个题目主要考察里如下几个方面:
1.使用c++的cin函数操作是会有一定的限制,因为cin函数默认是遇到空格或者是回车结束接收字符的;
2.对于strcpy 和 strncpy 以及memcpy的使用;
3.就是注意:手机键盘的结构布局,看的时候要认真;
下面是C语言的代码:
#include <stdio.h> #include <string.h> #include <stdlib.h> int main() { char name[100] = {'\0'}; gets(name); int len = strlen(name); if(len < 3) return 0; strlwr(name); char id[4] = {'\0'}; memcpy(id,name,3); int count = 0,i=0; for(i=0;i<len;i++) if(name[i] == ' ') if(++count < 3) id[count] = name[i+1]; else break; if(count == 1) id[2] = '\0'; len = strlen(id); printf("%s\n",id); for(i=0;i<len;i++) { int b = (id[i]-'a')/3; if(b<6) b+=2; switch(b) { case 6: if(id[i] <= 's') b = 7; else b = 8; break; case 7: if(id[i] == 'u') b = 8; else b = 9; case 8: b = 9; } printf("%d",b); } printf("\n"); return 0; }