用C语言编译:电视上经常需要显示用户的手机号码,可是一般为了保留用户的隐私,会将中间的4位数字用“*”代替。 现在给你一个电话号码,请输出代替后的电话号码。 输入 第一行是一个整数K,表示样例的个数。 以后每行一个手机号码,一共11位。
时间: 2024-10-14 10:08:00 浏览: 23
在C语言中,你可以通过字符串操作和循环结构来实现这个需求。下面是一个简单的示例程序:
```c
#include <stdio.h>
#include <string.h>
int main() {
int K;
// 读取样例数量
scanf("%d", &K);
for (int i = 0; i < K; i++) {
char phone[12]; // 包含前导0的情况
scanf("%s", phone);
// 检查是否是11位数字
if(strlen(phone) != 11 || phone[0] != '0') {
printf("错误:无效的电话号码\n");
continue;
}
// 替换第5到8位数字为'*'
for (int j = 4; j < 7; j++) {
phone[j] = '*';
}
// 输出处理后的电话号码
printf("替换后的电话号码: %s\n", phone);
}
return 0;
}
```
在这个程序中,我们首先读入每个样本的电话号码,然后检查它是否是11位并且以0开头。如果是,我们就用`*`替换从第5位到第8位的数字。最后打印出处理后的结果。
阅读全文