Я занимаюсь программированием на кодербайте, а во время его выполнения столкнулся с проблемой. Я хочу изолировать слово от строки, выполнить некоторые проверки, а затем перейти к другому слову. Код, который я собираюсь опубликовать, должен взять только первое слово и распечатать его на экране. Когда я запускаю его, он ничего не печатает. Я думал, что, возможно, я сделал что-то не так в цикле while, поэтому я сделал простой тест. Скажем, мой ввод «Это тестовое предложение», а вместо слова (в cout), я набираю слово [0]. Затем он печатает «Т» просто отлично. Вы можете найти, в чем проблема?Строка не печатает
#include <iostream>
#include <string>
using namespace std;
int Letters(string str) {
int i=0;
int len=str.length();
string word;
while(i<len){
if(isspace(str[i])){word[i]='\0'; break;}
word[i]=str[i];
i++;
}
cout<<word;
return 0;
}
int main() {
int test;
string str;
getline(cin, str);
test=Letters(str);
return 0;
}
Изменить слово '[I] = ул [I];' на [ 'word.append (ул [I]);'] (http://en.cppreference.com/w/cpp/string/basic_string/добавление). Вы не сохранили пространство для 'word', поэтому вы не можете получить доступ к' word [i] '. –
У вас есть неопределенное поведение. Подсказка - 'word [i] = str [i]' –