基本上,我试图通过消除在字符串s中输入的所有数字来打印字符串。但字符串c不打印。另外c.empty()给出了一个真正的值。为什么会发生这种情况,以及如何解决?在C++中初始化字符串很重要吗?
#include<iostream>
#include<string>
#include<cctype>
using namespace std;
int main()
{
string s;
string c;
getline(cin,s);
int l=0;
for(decltype(s.size()) i=0;i<=s.size();i++)
{
if(!isdigit(s[i]))
{
c[l]=s[i];
l+=1;
}
}
cout<<c<<endl; //no visible output
cout<<c.empty(); //this prints 1
return 0;
}
'C [1] = S [I];'是错误的。你需要先调用'resize()'。 – user0042
循环运行一次额外的时间。 – CinCout
@CinCout,幸运的是,当涉及到字符串时,s [size()]仍然有效。它只是空字符。 –