VC++中如何把一个字符串中的最后一个数字提取出来

VC++中怎么把一个字符串中的最后一个数字提取出来?
本帖最后由 VisualEleven 于 2013-03-05 12:02:34 编辑
我在这个字符串中写了一个IP(127.0.0.1),我想对这个IP的最后一位进行操作,怎么才能把最后一位提取出来,请高手帮忙,谢谢!
vc++

------解决方案--------------------
最后一位数的话,简单点做就是str=str.right(str.Getlenth()-1);
------解决方案--------------------
引用:
最后一位数的话,简单点做就是str=str.right(str.Getlenth()-1);


说错了,应该是str=str.right(1),呵呵
------解决方案--------------------
right(1)只能截取最后一位数字,两位就不行了。
你要先查找最后一个点的位置,然后截取点之后的字符串。
CString有提供这类的方法。
------解决方案--------------------
用 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;
}

------解决方案--------------------
CString IP("abcd127.0.0.1efgh");
int x = IP.ReverseFind('.');  //找到最后一个.的索引
ASSERT( x == 11 );
IP.Delete(0,x+1);  //IP == "1efgh";
int value = atol(IP);
------解决方案--------------------
CString::ReverseFind(_T('.'))
------解决方案--------------------
引用:
最后一位取出来之后,我想把这个字符串转换成16进制数,然后赋值给数组中调用,有什么函数可以直接转换吗?或者怎么实现转换?


int值你不是得到了么?
------解决方案--------------------
inet_addr