一、手机号码合法性判断
题目简介:
我国大陆运营商的手机号码标准格式为:国家码+手机号码,例如:8613912345678。特点如下:
1、 长度13位;
2、 以86的国家码打头;
3、 手机号码的每一位都是数字。
请实现手机号码合法性判断的函数要求:
1) 如果手机号码合法,返回0;
2) 如果手机号码长度不合法,返回1
3) 如果手机号码中包含非数字的字符,返回2;
4) 如果手机号码不是以86打头的,返回3;
【注】除成功的情况外,以上其他合法性判断的优先级依次降低。也就是说,如果判断出长度不合法,直接返回1即可,不需要再做其他合法性判断。
要求实现函数:
int s int verifyMsisdn(char* inMsisdn)
【输入】 char* inMsisdn,表示输入的手机号码字符串。
【输出】 无
【返回】 判断的结果,类型为int。
示例
输入: inMsisdn = “869123456789“
输出: 无
返回: 1
输入: inMsisdn = “88139123456789“
输出: 无
返回: 3
输入: inMsisdn = “86139123456789“
输出: 无
返回: 0
题目解答:
我觉得唯一可能存在的问题写在代码里了,其他的没什么,不赘述。
完整代码:
http://www.anycodex.com/blog/?p=249
二、将一个字符串的元音字母复制到另一个字符串,并排序
题目简介:
有一字符串,里面可能包含英文字母(大写、小写)、数字、特殊字符,现在需要实现一函数,将此字符串中的元音字母挑选出来,存入另一个字符串中,并对字符串中的字母进行从小到大的排序(小写的元音字母在前,大写的元音字母在后,依次有序)。
说明:
1、 元音字母是a,e,i,o,u,A,E,I,O,U;
2、 筛选出来的元音字母,不需要剔重。
最终输出的字符串,小写元音字母排在前面,大写元音字母排在后面,依次有序。
要求实现函数:
void sortVowel (char* input, char* output);
【输入】 char* input,表示输入的字符串
【输出】 char* output,排好序之后的元音字符串。
【返回】 无
示例
输入:char *input = “Abort!May Be Some Errors In Out System. “
输出:char *output =“aeeeooouAEIO”
题目解答:
1、将输入字符串中的元音字母全部挑出来,放入output中;
2、将output中的字符排序(本程序采用的是直接插入排序法),需要注意的是判定大小的标准发生了变化。具体标准如下:
设需要比较的两个字符分别是a, b,
若a, b都是小写字母,则按照字母顺序来定大小,a<b<c<…….<z;
若a,b都是大写字母,则按照字母顺序来定大小,A<B<C<…..Z;
若a,b一个大写,一个小写,则大写比小写大。
完整代码:
http://www.anycodex.com/blog/?p=253
三、身份证的合法性判断
做不动了,真正考试,如果能做对两道,那。。。。也过了,不追求太多。休息一会儿。
关于前面两道题,我都有一个困惑和不确定的地方,那就是在未知字符串长度情况下,输入char*型的字符串该怎么办?我知道在c++里面string可以不知道长度,但是对于上面两道题,入口参数为char*,而string又没办法转成char*,困惑。。。。。求大神解答!祝明天考试的同学都能顺利通过考试!!!耶耶耶!!!!