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

标签 c++ tolower isalpha

<分区>

我编写了一个代码,以便它使用 isalpha() 函数删除除 alphabats 之外的所有内容(如空格和其他内容),并使用 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);

关于c++ - isalpha() 函数不适用于字符串中的空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63047435/

相关文章:

c++ - isalpha 在 C++ 中导致 "Debug Assertion Failed"

c - 为什么我的 C 函数无法处理标点符号?

C++ 读取文件

构造函数中的 C++ 错误

c++ - 提高 std::sort 性能

用 C 创建自己的 toUpper 和 toLower

c - 如何只计算字符串中的字母?

c++ - 为什么我的迭代器指向 null,但只是有时?

c++ - make_shared() 在给它一个已经创建的对象时调用析构函数两次

c - 测试用例在特定行失败。手动工作正常 - C(大海捞针)