我开始尝试编写一个函数,该函数将从字符串中删除空格,但是现在,我已经研究了许多其他人针对该问题的解决方案,而我只是想确切地了解代码中出了什么问题/为什么std::cout << t << std::endl;末尾什么都不输出。
当我std::cout << t[count];在循环中包含该语句(在下面注释掉的语句)时,它将正确输出到控制台:hereissometext无空格。当我std::cout << t[0] << std::endl;结束时,它正确输出h,t[1]as e,t[2]as r,依此类推。但是,当我尝试t在最后输出时,它输出空格,并t.size()输出0。
我是编码的新手,如果这是一个完全明显的问题,请原谅我。
std::string s = "here is some text";
std::string t = "";
int count = 0;
for (int i = 0; i < s.size(); i++) {
if (std::isalpha(s[i])) {
t[count]+=s[i];
// std::cout << t[count];
count++;
}
}
std::cout << t << std::endl;
Run Code Online (Sandbox Code Playgroud)