我希望将以"hostName:port"形式表示的const char* hostName分离为const char* hostNameFinal和一个数字端口。
我目前有以下代码:
const char* hostName = "localhost:643246";
long int port;
char hostNameChar[256];
sscanf(hostName, "%s:%d", hostNameChar, &port);
hostNameChar的输出是:localhost:643246 port的输出是一个很大的数字,但不是643246
有时候port的值太大了,我应该使用哪种数据类型? 如何正确匹配hostName,以便获得2个带有所需信息的变量?
atoi
,它不会进行任何错误检查。strol
是一个更安全的替代方案。 - Mark Loeser%[]
而不是%s
。 - Martin York