如何在这种情况下考虑带空格的字符串

时间:2015-12-15 18:54:46

标签: c++ string

这是我制作的一段代码,要求用户只输入一串小写字母,否则他们必须再次输入。然后,它扫描字符串并输出字符串中使用的字母数量和未使用的数量。它完美而且完全按我想要的方式...除非字符串中有空格。因此,例如,如果字符串是“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;
}

0 个答案:

没有答案