c语言编写某系统在新用户注册时必须输入手机号,为了提高系统效率,防止输错手机号,需要对手机号进行验证。 验证规则为: (1)长度为11位 (2)由数字0~9组成 (3)必须是1开头 以上3个条件同时满足,则验证通过,否则为不通过。 输入格式: 在一行中一个字符串,长度不超过20个字符。 输出格式: 如果验证通过则输出yes,否则输出no。
时间: 2023-12-03 07:43:23 浏览: 31
以下是一个简单的 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语言,简单个人电话号码查询系统.doc
很抱歉,我无法提供文档或软件下载。但是我可以给您一些思路,帮助您自己编写一个简单的个人电话号码查询系统。
首先,您需要一个存储电话号码和对应信息的数据库。您可以选择使用文件、数组或链表等数据结构来实现。为了方便,我们可以使用文件来存储这些信息。
其次,您需要设计一个菜单,让用户可以选择不同的功能,如添加电话号码、查询电话号码、删除电话号码等。根据用户的选择,您可以调用相应的函数来完成对应的操作。
以下是一个简单的示例代码,仅供参考:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_NAME_LEN 20
#define MAX_PHONE_LEN 20
#define MAX_INFO_LEN 50
#define MAX_RECORDS 1000
// 定义电话号码记录结构体
typedef struct {
char name[MAX_NAME_LEN];
char phone[MAX_PHONE_LEN];
char info[MAX_INFO_LEN];
} PhoneRecord;
// 定义电话号码记录数组和记录数量
PhoneRecord records[MAX_RECORDS];
int recordCount = 0;
// 从文件中加载电话号码记录
void loadRecords() {
FILE *file = fopen("records.dat", "rb");
if (file == NULL) {
return;
}
while (recordCount < MAX_RECORDS && fread(&records[recordCount], sizeof(PhoneRecord), 1, file) == 1) {
recordCount++;
}
fclose(file);
}
// 保存电话号码记录到文件
void saveRecords() {
FILE *file = fopen("records.dat", "wb");
if (file == NULL) {
return;
}
for (int i = 0; i < recordCount; i++) {
fwrite(&records[i], sizeof(PhoneRecord), 1, file);
}
fclose(file);
}
// 添加电话号码记录
void addRecord() {
if (recordCount >= MAX_RECORDS) {
printf("电话号码记录已满!\n");
return;
}
printf("请输入姓名:");
scanf("%s", records[recordCount].name);
printf("请输入电话号码:");
scanf("%s", records[recordCount].phone);
printf("请输入备注信息:");
scanf("%s", records[recordCount].info);
recordCount++;
saveRecords();
printf("电话号码记录已添加!\n");
}
// 显示所有电话号码记录
void showRecords() {
if (recordCount == 0) {
printf("电话号码记录为空!\n");
return;
}
printf("%-20s%-20s%-50s\n", "姓名", "电话号码", "备注信息");
for (int i = 0; i < recordCount; i++) {
printf("%-20s%-20s%-50s\n", records[i].name, records[i].phone, records[i].info);
}
}
// 根据姓名查询电话号码记录
void searchRecord() {
char name[MAX_NAME_LEN];
printf("请输入要查询的姓名:");
scanf("%s", name);
int found = 0;
for (int i = 0; i < recordCount; i++) {
if (strcmp(records[i].name, name) == 0) {
printf("%-20s%-20s%-50s\n", records[i].name, records[i].phone, records[i].info);
found = 1;
}
}
if (!found) {
printf("未找到匹配的电话号码记录!\n");
}
}
// 根据姓名删除电话号码记录
void deleteRecord() {
char name[MAX_NAME_LEN];
printf("请输入要删除的姓名:");
scanf("%s", name);
int found = 0;
for (int i = 0; i < recordCount; i++) {
if (strcmp(records[i].name, name) == 0) {
// 将后面的记录往前移动,覆盖当前记录
for (int j = i + 1; j < recordCount; j++) {
memcpy(&records[j - 1], &records[j], sizeof(PhoneRecord));
}
recordCount--;
saveRecords();
printf("电话号码记录已删除!\n");
found = 1;
break;
}
}
if (!found) {
printf("未找到匹配的电话号码记录!\n");
}
}
// 显示菜单
void showMenu() {
printf("====================\n");
printf("电话号码查询系统\n");
printf("====================\n");
printf("1. 添加电话号码记录\n");
printf("2. 显示所有电话号码记录\n");
printf("3. 查询电话号码记录\n");
printf("4. 删除电话号码记录\n");
printf("0. 退出\n");
}
int main() {
loadRecords();
while (1) {
showMenu();
int choice;
printf("请选择功能:");
scanf("%d", &choice);
switch (choice) {
case 1:
addRecord();
break;
case 2:
showRecords();
break;
case 3:
searchRecord();
break;
case 4:
deleteRecord();
break;
case 0:
printf("谢谢使用!\n");
return 0;
default:
printf("无效的选择!\n");
break;
}
}
return 0;
}
```
请注意,这只是一个简单的示例代码,还有很多可以改进的地方。如果您希望实现更复杂的功能,可以考虑使用数据库或其他更高级的数据结构来存储电话号码记录。
用C语言中的结构体编写: 输入并显示五个学生的学号、姓名、手机号、语文成绩。
好的,下面是用C语言中的结构体编写输入并显示五个学生的学号、姓名、手机号、语文成绩的示例代码:
```c
#include <stdio.h>
struct student {
int id; // 学号
char name[20]; // 姓名
char phone[12]; // 手机号
float score; // 语文成绩
};
int main() {
struct student s[5];
int i;
// 输入学生信息
for (i = 0; i < 5; i++) {
printf("请输入第%d个学生的信息:\n", i+1);
printf("学号:");
scanf("%d", &s[i].id);
printf("姓名:");
scanf("%s", s[i].name);
printf("手机号:");
scanf("%s", s[i].phone);
printf("语文成绩:");
scanf("%f", &s[i].score);
printf("\n");
}
// 显示学生信息
printf("学号\t姓名\t手机号\t\t语文成绩\n");
for (i = 0; i < 5; i++) {
printf("%d\t%s\t%s\t%.1f\n", s[i].id, s[i].name, s[i].phone, s[i].score);
}
return 0;
}
```
这个程序定义了一个名为`student`的结构体,包含了学生的学号、姓名、手机号、语文成绩等信息。在`main`函数中,定义了一个包含5个`student`类型元素的数组`s`,用于存储5个学生的信息。程序首先通过`for`循环输入5个学生的信息,然后再通过`for`循环显示这5个学生的信息。