isalpha()函数不适用于字符串中的空格



我写了一段代码,这样它就可以使用isalpha((函数删除除字母表之外的所有内容(如空格和其他内容(,并使用tolower((函数将其转换为小写。如果我不在字符串中放一个空格,它会很好地工作,但如果字符串中有任何空格,它就会超出这个空格。我不明白为什么会发生这种事。这是我写的代码。

#include<bits/stdc++.h>
#include<cstring>
#include<cctype>
using namespace std;
int main()
{
    int i;
    string A,b="";
    cin>>A;
    for(i=0;i<A.size();i++)
    {
        if(isalpha(A[i]))
        b+= tolower(A[i]);
        
        else
        continue;
        
    }
    cout<<b;
}

请帮帮我。谢谢

cin >> A;考虑终止输入的空间。

要获得整条线路,请使用getline(cin, A);

cin读取字符串,直到它遇到的第一个空格,如果您的输入字符串是"Hello World";,则cin将只读取"0";你好;。

您可以使用getline函数来读取完整的一行。

相关内容

  • 没有找到相关文章

最新更新