我写了一段代码,这样它就可以使用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
函数来读取完整的一行。