当前位置: 代码迷 >> VC >> c++.net 字符串的截取与轮换
  详细解决方案

c++.net 字符串的截取与轮换

热度:266   发布时间:2016-05-05 00:02:26.0
c++.net 字符串的截取与替换
我是刚学C++.net的,感觉和VC6.0的区别不是一点点儿大。我现在需要做这样的事情,请问把前3个数字并替换成英文字母,网上的资源太少了,求一段源代码供参考。

001xxxxx;->00Axxxxx!
002xxxxx;->00Bxxxxx!
003xxxxx;->00Cxxxxx!
......
999xxxxx;->IIIxxxxx!

谢谢,求帮助!
------解决思路----------------------
10进制转26进制?
------解决思路----------------------
C++.net 比 VC6.0 新加了好多东西,VC6.0的大部分代码应该能用,主要在托管模式下不能用指针。LZ的需求在C++.net 和 VC6.0 中应该没有区别,代码如下:
	char str[] = "903xxxxxxxx!";
for( int i = 0; i < 3; i++ )
{
char c = str[i];
if( c != '0' )
str[i] = c + 0x10; 
}
TRACE( str );

规则:前3个数中,如果是0,不变,否则变为字母。
结果:I0Cxxxxxxxx!
VC2010测试通过
------解决思路----------------------
你转的规律是啥?1-->A ,2-->B ???
如果规律确定了,可以直接用string.replace替换
复杂的可以用正则表达式
------解决思路----------------------
10进制转26进制,你应该先字符串截取出前3个字符,转int型
然后按26进制计算一下百位,十位,个位,再逐个替换成字母

如果仅仅是1-9替换成A-G,也一样,先截取前3,替换,替换完拼接回去
  相关解决方案