提问人:Nancy Bun 提问时间:9/27/2022 更新时间:9/27/2022 访问量:84
检查字符是否属于数组(初学者 C++)
Checking if characters belong in an array (beginner C++)
问:
我需要编写一个程序,要求输入三个字符,然后依次检查第一个、第二个和第三个字符是否属于字母表(小写或大写)。 到目前为止,我所拥有的就是这个
char v1, v2, v3;
cout << "Enter 3-character identifier: ";
cin >> v1 >> v2 >> v3;
if ((v1 != 'a')&&(v1!='b'))
cout << v1 << v2 << v3 <<" is an invalid input, check first character\n";
else if (v2 != 'a')
cout << v1 << v2 << v3 << "Invalid input, check second character\n";
else (v3 != 'a');
cout << v1 << v2 << v3 << "Invalid input, check third character\n";
我正在测试我是否可以将字符与字母表进行比较,询问它是否不等于每个大小写字母,但这听起来很糟糕,所以我停在“b”处。我似乎无法将字符与数组或字符串进行比较(显示错误),这是我的 C++ 知识范围。我似乎也无法将“else”函数用于仅在前两个条件为假时适用。非常感谢任何帮助!
答:
0赞
Epsit
9/27/2022
#1
您可以将该功能用于相同的目的。由于您提到您只了解了诸如 if/else 之类的基本概念,因此您可以尝试这种方式,其中我只使用带有函数的 if/else 条件来连续检查提供的输入是否分别是字符。isalpha()
isalpha()
#include<iostream>
#include<cctype>
using namespace std;
int main()
{
char a,b,c;
cin>>a>>b>>c;
if(isalpha(a) && isalpha(b) && isalpha(c) == 1)
{
cout<<"All of them are characters."<<endl;
}
else if(isalpha(a) == 1 && isalpha(b) ==1 && isalpha(c) == 0)
{
cout<<"The third input is not a valid alphabet.";
}
else if(isalpha(a) == 0 && isalpha(b) == 1 && isalpha(c) == 1)
{
cout<<"The first input is not a valid alphabet.";
}
else if(isalpha(a) == 1 && isalpha(b) == 0 && isalpha(c) == 1)
{
cout<<"The second input is not valid alphabet.";
}
else if(isalpha(a) == 0 && isalpha(b) == 0 && isalpha(c) == 1)
{
cout<<"The first and second inputs are not valid alphabets.";
}
else if(isalpha(a) == 0 && isalpha(b) == 1 && isalpha(c) == 0)
{
cout<<"The first and third inputs are not valid alphabets.";
}
else if(isalpha(a) == 1 && isalpha(b) == 0 && isalpha(c) == 0)
{
cout<<"The second and third inputs are not valid alphabets.";
}
else if(isalpha(a) == 0 && isalpha(b) == 0 && isalpha(c) == 0)
{
cout<<"All of them are not valid alphabets.";
}
return 0;
}
不要忘记包含头文件。在此处查看输出文件。<cctype>
评论
0赞
Nancy Bun
9/28/2022
非常感谢。我是新贡献者,所以我还不能投赞成票,但你是救命稻草。我尝试了您的建议,但只向 isalpha 询问单个变量,而不是一次询问一个 a 是真/假、b 是真/假、c 是真/假等。我这样做是因为如果 a simple 是假的,那么 cout 将是角色 1 的失败消息,依此类推。你的回复结束了三天的痛苦,你得到了我所有的感谢!
评论
isalpha
while
while
while