这是我制作的一段代码,要求用户只输入一串小写字母,否则他们必须再次输入。然后,它扫描字符串并输出字符串中使用的字母数量和未使用的数量。它完美而且完全按我想要的方式...除非字符串中有空格。因此,例如,如果字符串是“asd fg”,则当我们可以清楚地看到它需要“使用5个字母,21未使用”时,输出将是“使用3个字母,23未使用”。我该如何解决这个问题?
#include <iostream>
#include <string>
using namespace std;
int main ()
{
string inp;
int l_inp, i, un, in, ln;
un=0;
ln=26;
char alpha;
bool flag;
flag=false;
do
{
cout<<"Please Enter String of Lowercase Letters: ";
cin>>inp;
i=0;
while (inp[i]>=97 && inp[i]<=122)
i++;
if (inp[i]=='\0')flag=true;
l_inp=0;
if (inp[l_inp]=='\0')flag=false;
}
while (flag==false);
for (alpha='a';alpha<='z';alpha++)
{
for (in=0;inp[in]!='\0';in++)
{
inp[in];
}
std::size_t found = inp.find(alpha);
if (found!=std::string::npos)
{
un++;
ln--;
}
}
cout<<" "<<un<<" letters are used in the string"<<endl;
cout<<" "<<ln<<" letters are not used in the string"<<endl;
return 0;
}