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;
}

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • IntelliJ IDEA中怎样使用JUnit4

    IntelliJ IDEA中怎样使用JUnit4

  • APK反编译之smali[通俗易懂]

    APK反编译之smali[通俗易懂]APK、Dalvik字节码和smali文件大家都应该知道APK文件其实就是一个MIME为ZIP的压缩包,我们修改ZIP后缀名方式可以看到内部的文件结构,例如修改后缀后用RAR打开鳄鱼小顽皮APK能看到的是(GooglePlay下载的完整版版本):   Where’sMyWater.zip\asset\            &lt;资源目录1:asse…

  • win7下虚拟显示器完成记(virtual monitor)——VDI显卡透传场景「建议收藏」

    win7下虚拟显示器完成记(virtual monitor)——VDI显卡透传场景「建议收藏」背景本次使用wddm过滤驱动的应用场景是VDIGPU透传场景,我这边运用WDDM过滤驱动,也有人叫wddmhook,主要有如下功能:(1)给透传显卡虚拟出一个显示器,因为透传显卡都是插在服务器上,一台服务器需要插十几张显卡(消费级显卡),不可能给每个显卡插一个显示器,不插显示器又会存在分辨率无法设置,分辨率过低的问题,为此需要自己虚拟一个显示器“插”在透传显卡上。(2)我们VDI使…

  • js字符串转html_vue文件如何编译成html

    js字符串转html_vue文件如何编译成htmlhtml代码如何转换成js文件这个很简单首先你要把html代码转成js代码有这种转换工具的搜下代码转换工具就可以再把你转换好了的代码放到文本中把后缀名改成点js就可以了可以用txt文档改js文件用记事本可以打开小编喝醉了酒,流入街头可怜的像条狗,哭着对你说别走,你义无反顾笑笑也不回头。把HTML代码放到document.write方法的括号中,并用引号括起来,将原来HTML中的引号进…

  • Matlab GUI上位机界面实现串口通信

    Matlab GUI上位机界面实现串口通信MatlabGUI因项目需求,不得不学的又杂又浅,趁着还没彻底忘记,写下来一些关键注意点。命令行窗口输入guide→BlankGUI→确定根据自己的需求,拖动选择对应的工具,如下图所示双击每一个对象,就可以弹出其检查器,修改其属性,字体大小、粗细、位置等,其中最关键的是两个,一是String,二是Tag,String是用来修改对象中的文字,Tag是所调用的代码名,这个要好的…

  • stream对象转map

    stream对象转map方法1直接指定key-value方法2按某字段分组

发表回复

您的电子邮箱地址不会被公开。

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