CString szTemp("TEST TEST TEST TEST TEST TEST TEST TEST TESTTEST TEST TEST");CString szData="";for (int i=0;i<70000;i++)
{
szData=szData+ szTemp;}
处理上面的代码竟然超过一分钟,请问有没有快速的处理字符串的类?

解决方案 »

  1.   

    CString szTemp("TEST TEST TEST TEST TEST TEST TEST TEST TESTTEST TEST TEST");CString szData="";
    LPSTR szPointer = szData.GetBuffer(70000*szTemp.GetLength());
    for (int i=0;i<70000;i++)
    {
    strcat(szPointer, szTemp);
    }szData.ReleaseBuffer();
      

  2.   

    测试了一下,还是超过一分钟,CPU还是100%,我的内存有1G的。
      

  3.   

    vcmute(横秋) 的方法已经很好了
      

  4.   

    嗯,我用楼主的代码试了一下,运行后等了三分钟以上都没出结果(我的机器赛扬2.0G,248M内存(8M给显存了)),等不及就结束了。改成以下代码后,用了1'53",快了不少。#include <iostream.h>
    #include <afx.h>void main()
    {
    CString szTemp("TEST TEST TEST TEST TEST TEST TEST TEST TESTTEST TEST TEST");CString szData="";
    char* str=new char[10000000];
    cout<<"申请内存空间成功"<<endl;
    cout<<"正在初始化变量......"<<endl;
    memset(str,0,10000000);
    cout<<"初始化完成"<<endl;
    cout<<"正在处理变量......"<<endl;for (int i=0;i<70000;i++)
    strcat(str,szTemp);
    cout<<"处理完成!"<<endl;}