c语言编写某系统在新用户注册时必须输入手机号,为了提高系统效率,防止输错手机号,需要对手机号进行验证。 验证规则为: (1)长度为11位 (2)由数字0~9组成 (3)必须是1开头 以上3个条件同时满足,则验证通过,否则为不通过。 输入格式: 在一行中一个字符串,长度不超过20个字符。 输出格式: 如果验证通过则输出yes,否则输出no。
时间: 2023-12-03 18:43:23 浏览: 93
以下是一个简单的 C 语言程序实现该功能:
```c
#include <stdio.h>
#include <string.h>
int main() {
char phone[21];
scanf("%s", phone);
int len = strlen(phone);
if (len != 11) {
printf("no\n");
return 0;
}
for (int i = 0; i < len; i++) {
if (phone[i] < '0' || phone[i] > '9') {
printf("no\n");
return 0;
}
}
if (phone[0] != '1') {
printf("no\n");
return 0;
}
printf("yes\n");
return 0;
}
```
代码思路:
1. 读入字符串,存储在字符数组 `phone` 中
2. 获取字符串长度,判断是否为11位,如果不是直接输出 `no`
3. 遍历字符串,判断每个字符是否为数字,如果不是直接输出 `no`
4. 判断第一个字符是否为1,如果不是直接输出 `no`
5. 如果以上条件都满足,则输出 `yes`
注意:该程序只是一个简单的示例,实际应用中还需要考虑其他因素,例如输入非法字符等等。
相关问题
用c语言编写一个用结构体保存用户通信录,通信录包含的信息有:手机号、姓名、工作单位。任意输入3个用户的信息后,输出第2个用户的姓名和手机号。
```c
#include <stdio.h>
#define COUNT 3 // 通信录中用户的数量
// 用户信息结构体
typedef struct{
char name[20]; // 姓名
char phone[12]; // 手机号
char company[30]; // 工作单位
} Contact;
int main(){
Contact contacts[COUNT]; // 保存用户信息的数组
printf("请输入%d个用户的信息:\n", COUNT);
// 循环输入每个用户的信息
for(int i=0; i<COUNT; i++){
printf("请输入第%d个用户的信息:\n", i+1);
printf("姓名:");
scanf("%s", contacts[i].name);
printf("手机号:");
scanf("%s", contacts[i].phone);
printf("工作单位:");
scanf("%s", contacts[i].company);
}
// 输出第二个用户的姓名和手机号
printf("第二个用户的姓名和手机号分别为:%s %s\n", contacts[1].name, contacts[1].phone);
return 0;
}
```
用c语言编写一个用c语言中的结构体编写: 输入并显示五个学生的学号、姓名、手机号、语文成绩。
```
#include <stdio.h>
#include <string.h>
#define MAX_STUDENTS 5
#define MAX_NAME_LEN 20
#define MAX_PHONE_LEN 12
//定义学生结构体
struct student {
int id;
char name[MAX_NAME_LEN + 1];
char phone[MAX_PHONE_LEN + 1];
int chinese_grade;
};
int main(void) {
struct student students[MAX_STUDENTS];
int i;
//输入学生信息
for (i = 0; i < MAX_STUDENTS; i++) {
printf("请输入第%d个学生的信息:\n", i + 1);
printf("学号:");
scanf("%d", &students[i].id);
printf("姓名:");
scanf("%s", students[i].name);
printf("手机号:");
scanf("%s", students[i].phone);
printf("语文成绩:");
scanf("%d", &students[i].chinese_grade);
}
//输出学生信息
printf("学号\t姓名\t手机号\t语文成绩\n");
for (i = 0; i < MAX_STUDENTS; i++) {
printf("%d\t%s\t%s\t%d\n", students[i].id, students[i].name, students[i].phone, students[i].chinese_grade);
}
return 0;
}
```
阅读全文