VC++中怎么把一个字符串中的最后一个数字提取出来?
本帖最后由 VisualEleven 于 2013-03-05 12:02:34 编辑 我在这个字符串中写了一个IP(127.0.0.1),我想对这个IP的最后一位进行操作,怎么才能把最后一位提取出来,请高手帮忙,谢谢! vc++
[解决办法]
最后一位数的话,简单点做就是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('.'))
[解决办法]
int值你不是得到了么?
[解决办法]
inet_addr