CString t1;CString t2;CString t3;CString t4;CString str="abcd";如何从str中分别提取"a","b","c","d",使
t1="a"
t2="b"
t3="c"
t4="d"
我用AfxMessageBox(str.GetAt(1)),为什么会出错呢?

解决方案 »

  1.   

    char c;
    for(int i = 0;i< str.GetLength();i++)
        c=str.GetAt(i);
      

  2.   

    t1=str.Left(1);
    t2=str.Mid(1,1);
    t3=str.Mid(2,1);
    t4=str.Right(1);
      

  3.   

    t1 = str[0];
    t2 = str[1];
    t3 = str[2];
    t4 = str[3];
      

  4.   

    TCHAR :str.GetAt(1)
    AfxMessageBox(CString)
      

  5.   

    str.GetAt(1)获取的是字符,不是字符串,
    用CString的Mid,left,Right都可以获取子串
    t1 = str.Mid(0,1)
    t2 =str.Mid(1,1)
    t3 =str.Mid(2,1)
    t4 =str.Mid(3,1)
      

  6.   

    str.GetAt(1);本来没有错的,只是不能直接用在AfxMessageBox()函数里而已
      

  7.   

    to numen27(影子):
    字符和字符串有区别吗?可以把一个字符转换成字符串吗?
      

  8.   

    char c = 'a';
    CString str;
    str = c;
    AfxMessageBox(str);
      

  9.   

    CString str="abcd";
    CString t1=str.GetAt(0);
    CString t2=str.GetAt(1);
    CString t3=str.GetAt(2);
    CString t4=str.GetAt(3);
    AfxMessageBox(t1);
      

  10.   

    代码如下:
    CString number;
    int len = LineLength(LineIndex(0));
    LPTSTR p=number.GetBuffer(len);
    number.ReleaseBuffer();
    GetLine(0,p,len); AfxMessageBox(number);
    //AfxMessageBox(number.GetAt(0,1));当我输入1个字符的时候是没有任何问题的,但当我输入两个以上时,弹出的对话框后面总跟着一长串乱码,我被这个问题弄得头痛啊
      

  11.   

    个人观点,同意楼上的
    CString str="abcd";
    CString t1=str.GetAt(0);
    CString t2=str.GetAt(1);
    CString t3=str.GetAt(2);
    CString t4=str.GetAt(3);
    AfxMessageBox(t1);
      

  12.   

    str[0];
    str[1];
    str[2];
    str[3];
      

  13.   

    to  BestBear(天外飞熊) and silentspring(Crush_Japan):
    这根本行不通,编译时就出错了:
    cannot convert from 'ATL::CSimpleStringT<BaseType,t_bMFCDLL>::XCHAR' to 'ATL::CStringT<BaseType,StringTraits>'
      

  14.   

    CString str="abcd";
    TCHAR t1=str.GetAt(0);
    TCHAR t2=str.GetAt(1);
    TCHAR t3=str.GetAt(2);
    TCHAR t4=str.GetAt(3);
      

  15.   

    to pomelowu(羽战士):
    你的方法是可以的,但是怎么把t1转换成CString呢?
      

  16.   

    CString str="abcd";
    CString t1(str.GetAt(0));
    CString t2(str.GetAt(1));
    CString t3(str.GetAt(2));
    CString t4(str.GetAt(3));
      

  17.   

    其实前面也可以这样用构造函数的:
    CString str("abcd");