如何在 c++ 中将 s1 和 s2 与 no if 语句进行比较

How can I compare s1 and s2 with no if statements in c++

本文关键字:if no 语句 比较 s2 c++ 中将 s1      更新时间:2023-10-16

我正在尝试编写遵循这些要求的代码,但是我无法找到一个可以正确比较string1string2的函数,这两者都是由用户输入的。这是我的代码:

const int COLFMT1 = 20;
const int COLFMT2 = 20;
string s1;
string s2;
size_t lengths1;
// string s1ats2;
cout << "Welcome to String Squids!" << endl;
cout << "--------------------------" << endl;
cout << "Enter string 1 (at least three characters, no spaces): ";
cin >> s1;
cout << "Enter string 2 (no spaces): ";
cin >> s2;
// Show formatted strings
cout << "String 1" << setw(COLFMT1) << right << endl;
cout << "Value: " << setw(COLFMT1) << right << s1 << setw(COLFMT1) << left << endl << endl;
lengths1 = s1.length(); //gathering length of string 1
cout << "Length:" << setw(COLFMT1) << right << lengths1 << setw(COLFMT1) << left << endl << endl;
//s1ats2 = s2.find('s1',9);
//cout << s1ats2;

以下是说明:

将以下六个大约s1输出格式化为两个格式化(无转义序列(列:

  • s1的内容
  • s1的长度
  • s1内发现s2的地点(如果有(
  • s1[0]是否为字母字符

我在使用第 3 个项目符号时遇到问题,其中s2s1中找到,然后还要确定它是否是字母字符。

您需要的第一个函数就是s1.find(s2)

需要std::isalpha第二个函数

其中 s2 位于 s1 中

标准::字符串::查找

例如size_t pos = s1.find(s2);

如果在 s1 中找不到 s2,则将std::string::npospos。 否则,它是位于 s1 内的 s2 的偏移量。

然后还要确定它是否是字母字符。

伊阿尔法

bool isFirstCharacterAlphabetical = ((s1.size() > 0) && ::isalpha(s1[0]));