MFC:CString::SpanIncluding与CString::SpanIncluding的用法和区别

先来看个例子:

	CString str[2] = { _T("12f"),_T("5a9") };
	if (str[0] == str[0].SpanExcluding(_T("nice")))
	{
		TRACE(_T("SpanExcluding 返回true:12f 所有字符都不在nice中 \n"));
	}
	else
	{
		TRACE(_T("SpanExcluding 返回false:12f 有字符在nice中 \n"));
	}

	if (str[0] == str[0].SpanExcluding(_T("fault")))
	{
		TRACE(_T("SpanExcluding 返回true:12f 所有字符都不在fault中 \n"));
	}
	else
	{
		TRACE(_T("SpanExcluding 返回false:12f 有字符在fault中 \n"));
	}

	if (str[1] == str[1].SpanIncluding(_T("0123456789")))
	{
		TRACE(_T("SpanIncluding 返回true:5a9 全是0~9的数字字符 \n"));
	}
	else
	{
		TRACE(_T("SpanIncluding 返回false:5a9 不全是0~9的数字字符 \n"));
	}

	if (str[1] == str[1].SpanIncluding(_T("a123456789")))
	{
		TRACE(_T("SpanIncluding 返回true:5a9 所有字符都在 a123456789 中 \n"));
	}
	else
	{
		TRACE(_T("SpanIncluding 返回false:5a9 有字符不在 a123456789 中 \n"));
	}
打印结果如下:

SpanExcluding 返回true:12f 所有字符都不在nice中 

SpanExcluding 返回false:12f 有字符在fault中 

SpanIncluding 返回false:5a9 不全是0~9的数字字符

SpanIncluding 返回true:5a9 所有字符都在 a123456789 中

总结

1、SpanExcluding 与 SpanIncluding 执行的过程类似,都是先把要比较的字符串分解成字符数组,逐个的与目标字符串进行比较,但它们的作用是相反的。SpanExcluding 是判断源字符串中所有的字符是否都不在目标字符串中,而SpanIncluding 是判断源字符串中所有的字符是否都在目标字符串中;

2、SpanExcluding 执行过程:源字符串解析后的字符数组,要逐个的与目标字符串(也是解析成字符数组)比较,当两者有相等的字符时,立即返回(视为返回false),只有比较完所有字符,两者都不相等,才返回源字符串(视为返回true);

3、SpanIncluding 执行过程:源字符串解析后的字符数组,要逐个的与目标字符串(也是解析成字符数组)比较,当两者有相等的字符时,就会接着比较下一个字符(while...continue),如果一轮比较完毕后,都没有与目标字符串相同的字符,则返回(视为返回false),只有比较完所有字符,源字符串所有字符都在目标字符串中,才返回源字符串(视为返回true)。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

宏笋

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值