【发布时间】:2020-07-23 05:27:31
【问题描述】:
我编写了一个代码,以便它使用 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;
}
请帮助我。 谢谢你
【问题讨论】:
-
失败的输入是什么?你在那个测试用例上得到的输出是什么?预期的输出是什么?
-
这么多重复的问题可供选择...
-
添加这一行
cout << A << '\n';然后你可能明白发生了什么 -
就像我给 input="adhGHt//'[]\Klj hyjc//ghDf" 然后它将输出作为 adhghtklj 而不是返回 adhghtkljhyjcghdf
-
这并不能解决问题,但可以删除
else continue;。它什么也没做。