c# 字符串加掩码,隐藏部分字符串

90 篇文章 7 订阅

执行结果

 

----------------- 字符串加掩码 -----------------
123*****89

执行代码

Console.WriteLine("----------------- 字符串加掩码 -----------------"); 
string str = "123456789"; 
Console.WriteLine(StringMask(str,3,2));

Console.Read();

 

工具代码 


/// <summary>
/// 字符串加掩码,字符串第一位的下标是0
/// </summary>
/// <param name="ValueString">值</param> 
/// <param name="StartReserve">起始保留字节数</param> 
/// <param name="EndReserve">尾部保留字节数</param>
/// <returns></returns>
public static string StringMask(string ValueString, int StartReserve, int EndReserve = 0)
{
    if (!string.IsNullOrEmpty(ValueString))
    {
        int len = ValueString.Length; 

        if (EndReserve >= len)
            EndReserve = 3;
        if (EndReserve < 0|| len<0)
            EndReserve = 0; 

        return ValueString.Substring(0, StartReserve) + "*****" + ValueString.Substring(len - EndReserve);

    } 
    return string.Empty;
}

 

 

 

 

下面是一个实现子网掩码计算的C语言源码示例: ```c #include<stdio.h> #include<stdlib.h> #include<string.h> // 函数声明 char *calculateSubnet(char *ip, int prefixLength); int main() { char ip[16]; int prefixLength; printf("请输入IP地址:"); scanf("%s", ip); printf("请输入子网前缀长度:"); scanf("%d", &prefixLength); char *subnet = calculateSubnet(ip, prefixLength); printf("子网掩码为:%s\n", subnet); free(subnet); return 0; } char *calculateSubnet(char *ip, int prefixLength) { unsigned long long subnetValue = 0; int i; for (i = 0; i < prefixLength; i++) { subnetValue |= (1 << (31 - i)); } // 将子网掩码转换为字符串形式 char *subnet = (char *)malloc(sizeof(char) * 16); snprintf(subnet, 16, "%llu.%llu.%llu.%llu", (subnetValue & 0xFF000000) >> 24, (subnetValue & 0x00FF0000) >> 16, (subnetValue & 0x0000FF00) >> 8, (subnetValue & 0x000000FF)); return subnet; } ``` 这段代码实现了一个简单的子网掩码计算器。用户可以输入一个IP地址和子网前缀长度,然后程序会根据输入计算出对应的子网掩码,并将结果输出。 实际上,子网掩码计算是根据网络地址和主机地址的分割来进行的。网络地址部分是由子网前缀长度决定的。根据这个前缀长度,我们可以将子网掩码设为前缀部分全为1,后面部分全为0的形式。然后,我们可以将二进制形式的子网掩码转换成点分十进制形式的字符串,方便显示输出。 这段代码中,我们首先在`main`函数中获取用户输入的IP地址和子网前缀长度。然后,我们调用`calculateSubnet`函数来计算子网掩码。在`calculateSubnet`函数中,我们使用位运算将前缀部分设置为1,后面部分设置为0,并将计算得到的子网掩码转换为字符串形式。最后,我们在`main`函数中输出结果并释放内存。 注意,这段代码中对输入的合法性没有进行验证,例如IP地址的格式和范围是否正确,子网前缀长度是否合法等。在实际应用中,这些验证是必要的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

橙-极纪元JJY.Cheng

客官,1分钱也是爱,给个赏钱吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值