C++将username部分用*取代

C++将username部分用*取代

简要:非常多时候中奖用户并不希望让别人知道他的ID。程序中我们就将他们的账号部分设置为*号显示。

比如:王小二->王*二

    asadjsahd->a*********d

代码:

#include<string.h>
#include<stdlib.h>
#define toStar(str,start,end) \
	do{ \
	for(int i=start;i<end;i++)\
		{ \
		str[i] = '*';\
		} \
	}while(0)
//GBK
const char* toStarString(const char* username)
{
	int len = strlen(username);
	char *starName = new char[len+1];
	strcpy(starName,username);
	int start = 1;       //默认保留头尾字符
	int end = len - 1;

	unsigned char ch = starName[0];                 //取头字符
	//if(isalnum(ch)) {toStar(starName,3,len-3);}
	if ( ch >= 0xB0 && ch <= 0xF7 )             //推断头是否为汉字
	{
		//继续检查下一个字符能否组织成汉字
		unsigned char ch1=starName[1];
		if ( ch1 >=0xA1 && ch1 <= 0xFE )
		{
			start = 2;
		}
	}
	ch = starName[len-1];           //尾字符
	if(ch >=0xA1 && ch <= 0xFE)
	{
		unsigned char ch1=starName[len-2];
		if ( ch1 >= 0xB0 && ch1 <= 0xF7 )
		{
			end = len - 2;
		}
	}

	if(start<=end-1) toStar(starName,start,end);
	else toStar(starName,end,len);
	return starName;
}
//Unicode
const wchar_t* toStarUn(const wchar_t* username)
{
	int len = wcslen(username);
	wchar_t *starName = new wchar_t[len+1];
	wcscpy(starName,username);
	if(len>2) toStar(starName,1,len-1);
	else if(len == 2) toStar(starName,1,len);
	return starName;
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/109196.html原文链接:https://javaforall.net

(0)
上一篇 2021年9月11日 下午6:00
下一篇 2021年9月11日 下午7:00


相关推荐

  • NetworkManager 使用「建议收藏」

    NetworkManager 使用「建议收藏」NetworkManagerNetworkManageraimsforNetworkConnectivitywhich”JustWorks”.Thecomputershouldusethewirednetworkconnectionwhenit’spluggedin,butautomaticallyswitchtoawirelessc

    2022年10月5日
    3
  • 当HR压你价,说你只值7K,你该怎么回答?

    当HR压你价,说你只值7K,你该怎么回答?当 HR 压你价 说你只值 7K 时 你可以流畅地回答 记住 是流畅 不能犹豫 礼貌地说 7K 是吗 了解了 嗯 其实我对贵司的面试官印象很好 只不过 现在我的手头上已经有一份 11K 的 offer 来面试 主要也是自己对贵司挺有兴趣的 所以过来看看 未完 这段话主要是陪 HR 互诈的同时 从公司兴趣 公司职员印象上 都给予对方正面的肯定 既能提升 HR 的好感度 又能让谈判气氛融洽 为后面的发挥留足空间

    2026年3月17日
    2
  • BP人工神经网络matlab工具箱_matlab神经网络控制

    BP人工神经网络matlab工具箱_matlab神经网络控制自己测试人口预测的matlab实现:x=[54167551965630057482587966026661465628286465365994672076620765859672956917270499725387454276368785348067182992852298717789211908599242093717949749625997542987051000721016541030081…

    2025年9月12日
    5
  • AI绘画软件哪个好?Midjourney入门保姆级教程

    AI绘画软件哪个好?Midjourney入门保姆级教程

    2026年3月15日
    3
  • 模型训练技巧[通俗易懂]

    模型训练技巧[通俗易懂]模型训练技巧神经网络模型设计训练流程图1-1神经模型设计流程当我们设计并训练好一个神经网络之后,需要在训练集上进行验证模型效果是否良好。这一步的目的在于判断模型是否存在欠拟合;在确定已经在训练

    2022年8月2日
    17
  • 简易MIMO-OFDM系统的设计

    简易MIMO-OFDM系统的设计MIMO OFDM 系统的接收信号是多个发射天线发送信号的衰落与加性噪声的线性叠加 若采用通常 SISO OFDM 系统或 MIMO 系统的估计算法估计信道 将会带来很大的估计误差 出于设计实现的考虑 本文主要研究理论相对比较成熟的慢变环境下基于训练序列的 MIMO OFDM 系统的信道估计算法 本章将主要讨论 MIMO O

    2026年3月19日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号