用C语言编写这段代码:某城市电话号码由三部分组成。它们的名称和内容分别是: (1)地区码:空白或三位数字; (2)前 缀:非'0'或'1'的三位数字; (3)后 缀:4位数字。
时间: 2023-12-24 07:06:45 浏览: 68
以下是用C语言编写的代码,实现输入和输出电话号码的功能:
```c
#include <stdio.h>
int main() {
int area_code, prefix, suffix;
printf("请输入电话号码的地区码:");
scanf("%d", &area_code);
printf("请输入电话号码的前缀:");
scanf("%d", &prefix);
printf("请输入电话号码的后缀:");
scanf("%d", &suffix);
printf("电话号码是:%03d %03d %04d\n", area_code, prefix, suffix);
return 0;
}
```
这段代码中,我们首先定义了三个整型变量 `area_code`、`prefix` 和 `suffix` 分别表示电话号码的地区码、前缀和后缀。然后使用 `printf` 和 `scanf` 函数分别输出和输入这三个变量的值,并使用格式化字符串 `%03d` 和 `%04d` 保证输出的数字位数是固定的。最后输出完整的电话号码。
相关问题
C语言编写黑盒测试电话号码问题:某城市电话号码由三部分组成。它们的名称和内容分别是: (1)地区码:空白或三位数字; (2)前 缀:非'0'或'1'的三位数字; (3)后 缀:4位数字。
好的,我可以为您编写一个简单的黑盒测试电话号码的程序,以下是参考代码:
```c
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int checkAreaCode(char* areaCode) {
if (strlen(areaCode) != 0 && strlen(areaCode) != 3) {
return 0;
}
for (int i = 0; i < strlen(areaCode); i++) {
if (!isdigit(areaCode[i])) {
return 0;
}
}
return 1;
}
int checkPrefix(char* prefix) {
if (strlen(prefix) != 3) {
return 0;
}
if (prefix[0] == '0' || prefix[0] == '1') {
return 0;
}
for (int i = 0; i < strlen(prefix); i++) {
if (!isdigit(prefix[i])) {
return 0;
}
}
return 1;
}
int checkSuffix(char* suffix) {
if (strlen(suffix) != 4) {
return 0;
}
for (int i = 0; i < strlen(suffix); i++) {
if (!isdigit(suffix[i])) {
return 0;
}
}
return 1;
}
int main() {
char areaCode[4] = "";
char prefix[4] = "";
char suffix[5] = "";
printf("请输入电话号码:\n");
scanf("%s%s%s", areaCode, prefix, suffix);
if (!checkAreaCode(areaCode)) {
printf("地区码不合法!\n");
return 0;
}
if (!checkPrefix(prefix)) {
printf("前缀不合法!\n");
return 0;
}
if (!checkSuffix(suffix)) {
printf("后缀不合法!\n");
return 0;
}
printf("电话号码合法!\n");
return 0;
}
```
该程序将用户输入的电话号码按照地区码、前缀和后缀分别检查其合法性。如果任何一个部分不符合要求,则程序会输出相应的错误信息。如果电话号码合法,则程序会输出“电话号码合法!”。
您可以根据您的需求进行修改和扩展。
某城市电话号码由三部分组成。它们的名称和内容分别是: 地区码:空白或三位数字; 前 缀:非 '0'或'1'的三位数字;后 缀:4 位数字。假定被测程序能接受一切符合上述规定 的电话号码,拒绝所有不符合规定的电话号码。根据该程序的规格说明,作等价类的划分,并 设计测试方案以及c语言代码
等价类划分:
1. 地区码为空白或三位数字
2. 前缀是非'0'或'1'的三位数字
3. 后缀是四位数字
测试方案:
1. 输入符合规定的电话号码,如"010-1234"
2. 输入地区码为三位数字,如"021-1234"
3. 输入前缀为非'0'或'1'的三位数字,如"075-2345"
4. 输入后缀为四位数字,如"010-5678"
5. 输入地区码为空白,如" -1234"
6. 输入前缀为'0'或'1',如"010-0123"
7. 输入后缀不为四位数字,如"010-567"
C语言代码:
```c
#include <stdio.h>
#include <string.h>
#include <ctype.h>
// 判断是否符合规定
int isValid(char *str) {
int len = strlen(str);
if (len != 8) return 0; // 长度不为8位
if (!isdigit(str[0]) || !isdigit(str[1]) || !isdigit(str[2])) return 0; // 地区码不是数字
if (str[3] != '-') return 0; // 前缀和后缀之间不是'-'
if (str[4] == '0' || str[4] == '1') return 0; // 前缀以'0'或'1'开头
if (!isdigit(str[4]) || !isdigit(str[5]) || !isdigit(str[6])) return 0; // 前缀不是数字
if (!isdigit(str[7])) return 0; // 后缀不是数字
return 1;
}
int main() {
char str[100];
printf("请输入电话号码:");
gets(str);
if (isValid(str)) printf("符合规定\n");
else printf("不符合规定\n");
return 0;
}
```
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)