如何在C ++中将s1和s2与没有if语句进行比较

时间:2018-09-24 22:54:52

标签: c++ string format

我正在尝试编写符合这些要求的代码,但是在查找可以正确比较用户输入的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
  • 的长度   
  • s2中发现s1的地点(如果有的话)
  •   
  • s1[0]是否是字母字符
  •   

我遇到了第三个项目符号的麻烦,在s2中找到了s1,然后还要确定它是否是字母字符。

2 个答案:

答案 0 :(得分:1)

您需要的第一个功能就是s1.find(s2)

第二个功能必须为std::isalpha

答案 1 :(得分:-2)

  

在s1中找到s2

std::string::find

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

如果在s1中找不到s2,则

pos将是std::string::npos。否则,它是s1中s2的偏移量。

  

,然后还要识别它是否是字母字符。

isalpha

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