根据token分割字串

本文介绍了一个使用C++标准库进行字符串拆分的例子,通过查找特定分隔符的位置来实现字符串的切割,并展示了如何打印分割后的子串。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include <iostream>
#include <string>
#include <cstring>

int main()
{
	const char *c = "2:212,2:213,2:214,2:215,2:216,2:217,2:218,2:219,2:220,2:221,2:222,2:223,2:224,2:225,2:226,2:227,2:228,2:229,2:230,2:231,2:232,2:233,2:234,2:235,2:236,2:237,2:238,2:239,2:240,2:241,2:242,2:243,2:244,2:245,2:246,2:247,2:248,2:249,2:250,2:251,2:252,2:253,2:254,2:255,2:256,2:257,2:258,2:259,2:260,2:261,2:262,2:263,2:264,2:265,2:266,2:267,2:268,2:269,2:270,2:271,2:272,2:273,2:274,2:275,2:276,2:277,2:278,2:279,2:280,2:281,2:282,2:283,2:284,2:285,2:286,2:287,2:288,2:289,2:290,2:291,2:292,2:293,2:294,2:295,2:296,2:297,2:298,2:299,2:300,2:301,2:302,2:303,2:304,2:305,2:306,2:307,2:308,2:309,2:310,2:311,";
	//const char *c = "2:212";
	int beginPos = 0;
	int endPos = 0;
	std::string buf = c;
	const char *token = ",";
	while (true) {
		beginPos = buf.find_first_not_of(token, beginPos);
		if (beginPos == (int)std::string::npos) {
			break;
		}
		endPos = buf.find_first_of(token, beginPos);
		if ((int)std::string::npos == endPos) {
			break;
		}

		std::string sub = buf.substr(beginPos, endPos - beginPos);
		std::cout << "sub = " << sub << std::endl;
		beginPos = endPos;
	}

	return 0;
}

 

转载于:https://www.cnblogs.com/jingyg/p/6673348.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值