本帖最后由 VisualEleven 于 2013-03-05 12:02:34 编辑

解决方案 »

  1.   

    最后一位数的话,简单点做就是str=str.right(str.Getlenth()-1);
      

  2.   


    说错了,应该是str=str.right(1),呵呵
      

  3.   

    str=str.right(1),这样就可以把这个127.0.0.1中的1提取出来么?
      

  4.   

    right(1)只能截取最后一位数字,两位就不行了。
    你要先查找最后一个点的位置,然后截取点之后的字符串。
    CString有提供这类的方法。
      

  5.   

    用 inet_addr 将 IP 字符串转换为一个 ULONG 型 IP 数值。
    其四个字节分别保存着 IP 地址的四个数字,想取哪个都行:
    #include <winsock2.h>
    #pragma comment(lib, "ws2_32.lib")int main(void)
    {
        WSADATA wsaData;
        if (WSAStartup(MAKEWORD(2, 2), &wsaData) == 0) {
            struct in_addr addr;
            addr.S_un.S_addr = inet_addr("127.0.0.1");
            if (addr.S_un.S_addr != INADDR_ANY &&
                addr.S_un.S_addr != INADDR_NONE) {
                printf("%u.%u.%u.%u\n",
                       addr.S_un.S_un_b.s_b1,
                       addr.S_un.S_un_b.s_b2,
                       addr.S_un.S_un_b.s_b3,
                       addr.S_un.S_un_b.s_b4);
                WSACleanup();
            }
        }
        return 0;
    }
      

  6.   

    CString IP("abcd127.0.0.1efgh");
    int x = IP.ReverseFind('.');  //找到最后一个.的索引
    ASSERT( x == 11 );
    IP.Delete(0,x+1);  //IP == "1efgh";
    int value = atol(IP);
      

  7.   

    CString  str = “1 2 3 4 5 6”;
    m_destination.GetLBText(m_start.GetCurSel(),str);
    CSplitStr Split;
    UpdateData();
    Split.SetSplitFlag(" ");
    Split.SetSequenceAsOne(TRUE);
    Split.SetData(str);
    CStringArray array;
    Split.GetSplitStrArray(array);//按空格提字符串并存在Carray中
    m_PointEnd.x = atoi(array.GetAt(0));//按索引逐个读取