用c语言做下题为了保留用户的隐私,会将中间的4位数字用“*”代替。 现在给你一个电话号码,请输出代替后的电话号码。 输入 第一行是一个整数K,表示样例的个数。 以后每行一个手机号码,一共11位。 输出 每行输出一个结果。
时间: 2024-09-14 15:14:45 浏览: 63
要使用C语言解决这个问题,你可以采用字符串处理的方式来实现。首先读取用户输入的电话号码(一个字符串),然后按照需求替换中间的四位数字为星号(*)。下面是一个简单的示例程序:
```c
#include <stdio.h>
#include <string.h>
#define MAX_PHONE_LEN 12
int main() {
int K;
char phone[MAX_PHONE_LEN];
// 读取样例个数
scanf("%d", &K);
for (int i = 0; i < K; i++) {
// 读取电话号码
scanf("%s", phone);
// 确保电话号码长度为11位
if (strlen(phone) != 11) {
printf("Invalid number format!\n");
continue;
}
// 保存原始前四位和后四位
char start[5] = {phone[0], phone[1], phone[2], phone[3], '\0'};
char end[5] = {phone[7], phone[8], phone[9], phone[10], '\0'};
// 替换中间四位为*
phone[4] = phone[5] = phone[6] = '*';
// 连接原始部分和中间的*
strcat(start, "*");
strcat(phone + 4, end);
// 输出结果
printf("%s\n", phone);
}
return 0;
}
```
阅读全文