比如:CString类型的一串数据“45,78,99”
输入一个新的CString数据“55”
怎样比较大小,进行插入操作

解决方案 »

  1.   

    int Len=0,iVal,strLen,iTmp;
    CString Tmp,Str;
    Str = "45,78,99";
    iVal = 55;
    strLen = lstrlen(Str);
    while(Len<strLen)
    {
        iTmp = atoi(Str);
        if(iTmp > iVal)
        {
           Str.Format(Str.Left(Len)+",%d"+Str.Right(strLen-Len),iTmp);
           break;
        }
        else
        {
            iTmp.Format("%d",iTmp);
            Len+=lstrlen(iTmp)+1;//+1为逗号
        }
    }
    if(Len>=strLen)
    {
       Str.Format(Str+",%d",iVal);
    }
    没验证过,不过大概就是这个思路,LZ可以试下,还有如果插入的值为第一个,前面的逗号还要做下处理
      

  2.   

    自己先截取出来子字符串, Find 查找 ,
    然后CString等可以直接 > < 比较
    最后重组字符串
      

  3.   

    CString strTemp;
    CString strNumbers = _T("45,78,99");
    int nValue = 55;
    int nInsert = 0, nEnd = 0, nLen = strNumbers.GetLength(); while (nEnd != -1)
    {
    nEnd = strNumbers.Find(',', nInsert);
    strTemp = nEnd == -1 ? strNumbers.Mid(nInsert) : strNumbers.Mid(nInsert, nEnd - nInsert);
    if (_ttoi(strTemp) > nValue)
    break;
    nInsert = nEnd == -1 ? nLen : (nEnd + 1);
    } strTemp.Format(nInsert == nLen ? _T(",%d") : _T("%d,"), nValue);
    strNumbers.Insert(nInsert, strTemp);
    AfxMessageBox(strNumbers);
      

  4.   

    1.用CString的Mid和Find把逗号之间的数字取出来“45,78,99” 
    2.然后转换成int类型的,_atoi();
    3.然后把"55"同样转换下,确定位置,再用CString . Format("%d%d%d", a, b ,c );拼好!