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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • C/C++ 语言中的表达式求值

    C/C++ 语言中的表达式求值

    2021年8月26日
    57
  • Ip地址归属地_电脑ip地址归属地查询

    Ip地址归属地_电脑ip地址归属地查询点击↑上方↑蓝色“编了个程”关注我~这是Yasin的第61篇原创文章最近各大社交平台都悄悄上线了一个新功能,就是显示用户的IP归属地,境内精确到省级,境外精确到国家或地区。在个人信息和每条评论上面都有,也是炸出来了一波xx在xx国的账号,各大号主纷纷出视频解释自己的ip归属为什么在国内,有说用代理的,有说给家人登录的,也有说在国内有工作室(团队)的……今天从技…

    2022年9月1日
    8
  • JS进阶(1) —— 人人都能懂的构造函数

    JS进阶(1) —— 人人都能懂的构造函数

    2022年3月13日
    41
  • Android布局详解

    Android布局详解Android六大基本布局分别是:线性布局LinearLayout、相对布局RelativeLayout、帧布局FrameLayout、表格布局TableLayout、网格布局GridLayout。其中,表格布局是线性布局的子类。网格布局是android4.0后新增的布局。普通视图还是布局都继承自View,其中ViewGroup就是所有布局的父类,ViewGroup继承自View…

    2022年6月2日
    38
  • javascript 匿名函数_定义匿名函数的关键字是

    javascript 匿名函数_定义匿名函数的关键字是JavaScript匿名函数介绍:匿名函数顾名思义指的是没有名字的函数,在实际开发中使用的频率非常高。本文将对此介绍。

    2022年10月4日
    5
  • 聚类算法(4)–Hierarchical clustering层次聚类

    聚类算法(4)–Hierarchical clustering层次聚类目录 一、层次聚类1、层次聚类的原理及分类2、层次聚类的流程3、层次聚类的优缺点二、python实现1、sklearn实现2、scipy实现树状图分类判断一、层次聚类1、层次聚类的原理及分类1)层次法(Hierarchicalmethods)先计算样本之间的距离。每次将距离最近的点合并到同一个类。然后,再计算类与类之间的距离,将距离最近的类合并为一个…

    2025年8月15日
    3

发表回复

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

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