VC++中怎么把一个字符串中的最后一个数字提取出来? 本帖最后由 VisualEleven 于 2013-03-05 12:02:34 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 最后一位数的话,简单点做就是str=str.right(str.Getlenth()-1); 说错了,应该是str=str.right(1),呵呵 str=str.right(1),这样就可以把这个127.0.0.1中的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 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));//按索引逐个读取 执行程序代码,是"进程"的工作呢?还是"线程"的工作呢? 在MFC中,怎样把一个字符串的IP地址赋给IP控件 如何在服务端获取客户端的消息 请求帮助:CChatRichEdit拾取 多线程中使用CStringList出现问题!! 简单题,调用函数 结构化存储中的使用STGM_DIRECT_SWMR的问题。 我想在这里多交朋友 请问VB代码=》VC代码的问题 有想学编程的吗,真正的编程,不光是SDK的 感觉压力山大,压抑啊 对话框的问题:
说错了,应该是str=str.right(1),呵呵
你要先查找最后一个点的位置,然后截取点之后的字符串。
CString有提供这类的方法。
其四个字节分别保存着 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;
}
int x = IP.ReverseFind('.'); //找到最后一个.的索引
ASSERT( x == 11 );
IP.Delete(0,x+1); //IP == "1efgh";
int value = atol(IP);
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));//按索引逐个读取