Xiao_Mo 发表于 2021-12-3 21:17:30

关于字符串与指针的问题

如题

完成函数fun,其功能为
字符串x是否为给定的3位区段号a的可能的手机号码。
是,返回1
否则返回0

主要问题还是字符串不太会,求解惑,谢谢大佬啦{:10_266:}

题目要求:在/**********Begin**********/和/**********End**********/之间输入代码

#include <stdio.h>
#include <string.h>
   
int fun(char *x, char *a)
{
/**********Begin**********/

/**********End**********/
}

int main()
{
int i,num,k;
char a, aa;

printf("请输入一个字符串,判断是否可能电话号码:");
gets(a);
printf("请输入一个字符串,区号:");
gets(aa);

printf("返回:%d\n", fun(a, aa) );

return 0;
}

jackz007 发表于 2021-12-3 22:31:10

int fun(char *x, char *a)
{
/**********Begin**********/
      int i , m, n , r = 0                                    ;
      for(n = 0 ; x ; n ++) if(x < '0' || x > '9') break ;
      for(m = 0 ; a ; m ++) if(a < '0' || a > '9') break ;
      if(m > 0 && n > 0 && n > m && ! x && ! a) {
                for(i = 0 ; i < m ; i ++) if(x != a) break    ;
                if(i == m) r = 1                                    ;
      }
      return r                                                    ;
/**********End**********/
}

Xiao_Mo 发表于 2021-12-6 00:38:58

jackz007 发表于 2021-12-3 22:31


谢谢大佬,但是这个好像不能检错
忘记加了一些题目要求

题目:完成函数fun,其功能为
字符串x是否为给定的3位区段号a的可能的手机号码。
是,返回1
否则返回0

设:x可能是3位区段号a的手机号码的判断标准为
1. x必须是11位,且均为数字字符
2. x的最前面3位是a,且后面的不能是全0
3. a的长度必须是3,且第一位必须是1

比如
x 13945678901a 139 是
x 12345678901a 123 是
x 13900000000a 139 不是
x 12345678901a 1234 不是
x 07601234567a 0760 不是
x 07601234567a 076 不是
x 1236ab34567a 123 不是
x 01012345678a 010 不是
x 01012345678a 01 不是


注意:部分源程序给出如下。请勿改动主函数main和其
      它函数中的任何内容,仅在函数fun的花括号中填
      入所编写的若干语句。
*********Begin**********和**********End**********不可删除

简单来说就是手机号11位;不能有字母;第一位必须是1;后面8位不能全是0
以上条件通过视为1没通过就是0
页: [1]
查看完整版本: 关于字符串与指针的问题