Я работаю над домашним заданием, и я не могу получить эту функцию правильно. Кто-нибудь есть идеи о том, почему это не будет работать, чтобы создать подстроку, состоящую из символов между двумя пробелами (слово 0, слово 1 и т. Д.)?Извлечь слово из строки
string extractWord(string s, int wordNum)
{
int wordIndices[10];
int i = 0;
for (int z = 0; z < s.length(); z++)
{
if (isspace(s.at(z))==true)
{
wordIndices[i] = z;
i++;
}
}
return s.substr(wordIndices[wordNum], abs(wordIndices[wordNum+1] - wordIndices[wordNum]));
}
Если '' '' 'word1 word2" ', тогда' wordIndices [0] 'будет' 5'. Я не думаю, что ты этого хочешь. Другими словами, если нет ведущих символов пробела, 'wordIndices [0]' должно быть установлено в '0'. –
BTW, вы можете рассматривать 'std :: string' как массив и не нуждаетесь в функции' at', например 's [z]'. –