关于字符串分割的问题 我想把一个字符串按照长度分割怎么分割啊 就是我先获得了整个字符串的长度CSize sz=dc.GetTextExtent(str); 如何按照特定的长度分割啊 如我想得到长度为sz.cx=3的段字符串怎么办哪 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 dc是啥类型?CString的话则计算一下位置用Mid获取字串string的话用substr int index=0;CSize sz1,sz2;for(int i=0; i<str.GetLength(); i++){ if(i == str.GetLength()) { index = i; break; } sz1=dc.GetTextExtent(str.Left(i)); sz1=dc.GetTextExtent(str.Left(i+1)); if(sz1 == 3 || (sz1.cx<3 && sz2.cx>3)) { index = i; break; }}CString strtmp = str.Left(index);不知道这样行不行 str是不是CString类型?如果是 CString的 mid 就可以 mid可以截断字符串 先确定要分多少行,再根据CSize sz=dc.GetTextExtent(str)求出来的总长度除以行数算出每行平均长度。逐个字符增加,每次增加都计算GetTextExtent,直到大于平均长度,再减掉一个字符也计算一个长度,哪个和平均值靠近就用哪个(多一个字符或者少一个字符),这样一行一行地求,只能是近似长度。如果想显示对齐其实也可以的。 dc就是CDC类型了吧CString就用Mid 安全模式下自动运行程序 上次没解决的菜鸟问题(继续急。。) 同样的代码,为什么在vc6.0,和vc++ .net中执行的结果不一样呢?关于进度条颜色变化 关于DateTimePicker控件时间显示/获取问题 序列化保存信息 CRichEditCtrl 怎么改变字体颜色啊 DLL 出错问题,有经验的朋友进来看 PropertySheet点选Cancel出错 十万火急!!答了就有分,决不吝啬! 请问 socket接收的数据显示有问题 WTL,在窗格内绘图
CString的话则计算一下位置用Mid获取字串
string的话用substr
CSize sz1,sz2;
for(int i=0; i<str.GetLength(); i++)
{
if(i == str.GetLength())
{
index = i;
break;
}
sz1=dc.GetTextExtent(str.Left(i));
sz1=dc.GetTextExtent(str.Left(i+1));
if(sz1 == 3 || (sz1.cx<3 && sz2.cx>3))
{
index = i;
break;
}
}
CString strtmp = str.Left(index);
不知道这样行不行
如果是
CString的 mid 就可以 mid可以截断字符串
逐个字符增加,每次增加都计算GetTextExtent,直到大于平均长度,再减掉一个字符也计算一个长度,哪个和平均值靠近就用哪个(多一个字符或者少一个字符),这样一行一行地求,只能是近似长度。如果想显示对齐其实也可以的。
CString就用Mid