我正在尝试编写符合这些要求的代码,但是在查找可以正确比较用户输入的string1
和string2
的函数时遇到了麻烦。这是我的代码:
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
,然后还要确定它是否是字母字符。
答案 0 :(得分:1)
您需要的第一个功能就是s1.find(s2)
。
第二个功能必须为std::isalpha
答案 1 :(得分:-2)
在s1中找到s2
例如
size_t pos = s1.find(s2);
pos
将是std::string::npos
。否则,它是s1中s2的偏移量。
,然后还要识别它是否是字母字符。
bool isFirstCharacterAlphabetical = ((s1.size() > 0) && ::isalpha(s1[0]));