以前用VB习惯了Left ,Right,Mid,Trim等函数
现在开始用VC,预取一字符,倍感不适应。所以望指教
如:我有一字符串STR “abc123KJH”
现在想取 abc存于字符串STR1中,123字符串存于STR2中,KJH字符串存于STR3中,不知道怎么实现现扩展:假如STR长度未知(假如很长),我要求取中间第三位开始的后2位数据,以前用VB可以MID(STR,3,2)。VC不知道怎么实现? 我要求取STR最后的2位数据,又怎么实现?

解决方案 »

  1.   

    CString str1=(CString)str.GetAt(0)+(CString)str.GetAt(1)+(CString)str.GetAt(2);
    CString str2=(CString)str.GetAt(3)+(CString)str.GetAt(4)+(CString)str.GetAt(5);
    CString str3=(CString)str.GetAt(6)+(CString)str.GetAt(7)+(CString)str.GetAt(8);如果abc 123 KJH间有统一分隔副将更简单
      

  2.   

    用strncpy就可以做到了strncpy(dest, src + 3, 2);复制最后两位需要调用strlen了,strcpy(dest, src + strlen(str) - 2);
      

  3.   

    使用 CString 类会比较方便一些
    有 CString::Left 、 CString::Mid 、 CString::Right 等函数
      

  4.   

    CString str = _T("This is an example.");
    1.
    CString strLeft = str.Left(5);
    2.
    CString strMid = str.Mid(5, 5);
    3.
    CString strRight = str.Right(5);
      

  5.   

    CString方便
    还有CString::Find(),CString::ReverseFind()
      

  6.   

    先,谢了各位,我先去试下,这个软件的字符转换八我弄产了,一会儿,CString-》INT,一会儿INT-》char* ,最后char* -》CString。MFC的字符与C++的规定还是又点不兼容
      

  7.   

    MFC的字符串是CString,而C++标准里面的字符串是std::string这两个差别很大的,CString实现了一个operator const char*(或者是operator const wchar_t*),而标准库里面是没有任何重载的转换操作符的……最根本的字符串还是C-Style的字符串,用起来虽然不如std::string和CString方便,但是在很多情况下比std::string和CString方便得多……而且SDK里面没有CString和std::string的存在……