Выделение текста между двумя запятыми C++?

Имеется входная строка с двумя запятыми .Я нахожу позиции двух запятых и делю на 3 подстроки по запятым ,но вот подстрока между двумя запятыми определяется не правильно .
#include <iostream>
#include <string>
using namespace std;
string stroke;
int n;

int main()
{

	cin >> n;
	if (n > 10000 || n < 1) {
		return -1;
	}
	cin.ignore();
	for (int i = 1; i <= n; i++) {
		getline(cin, stroke);
		cout <<"string: "<< stroke << endl;
		//деление строки на персон :
		short zap1 = stroke.find(",");
		short zap2 = stroke.find(",",zap1+1);
		cout << "zap2 : " << zap2 << endl;
		string dad, mom, son;
		dad = stroke.substr(0, zap1);
		mom = stroke.substr(zap1 + 1, zap2);
		son = stroke.substr(zap2 + 1);
		cout << "son : "<<son << "  moth : "<<mom<<"  dad : " << dad <<endl;
			

	}
	
}

я получаю строку от первой запятой ,до конца , хотя все остальное определяется правильно.
  • Вопрос задан
  • 74 просмотра
Решения вопроса 1
@res2001
Developer, ex-admin
Потому что второй параметр в substr - это не конечная позиция, а количество символов. Ощути разницу.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы