在字符串类上的成员函数和out_of_range异常处理
On the string class at member function and out_of_range exception handling
写在前面: 我的母语不是英语。我在运行程序时遇到一些问题。这在我的标题中已经解释过了。此函数用于显示两个输出字符串是否为字母十六进制;两个字符串的字母出现在相同数量的字母中的顺序可以是任意的,但两个字符串不能相同 eg:slient 和 lisent 是异位的( 这是我的代码:
#include<iostream>
#include<string>
using namespace std;
bool LetterChange(string s1,string s2);
int main()
{
string s1, s2;
cin >> s1;
cin >> s2;
if (LetterChange(s1, s2) == true)
cout << "ok" << endl;
else
cout << "not ok " << endl;
return 0;
}
bool LetterChange(string s1, string s2)
{
unsigned k = 0;
if (s1.size() == s2.size())
{
if (s1.compare(s2) != 0)
{
unsigned i = 0;
unsigned j = 0;
while( i < s1.size())
{
for(unsigned j=0;j < s2.size();)
{
if (s1.at(i) == s2.at(j) )
{
++i;
++k;
}
else
++j;
}
}
if (k == s1.size())
return true;
else
return false;
}
else
return false;
}
else
return false;
}
虽然我的话很尴尬,但谢谢你的观察和回答。
我知道您想检查在两个相同长度的单词中是否有相同的字母,但顺序不同?您可以通过检查一个单词的每个字母是否出现在第二个单词中来更轻松地做到这一点:
#include<iostream>
#include<string>
using namespace std;
bool LetterChange(string s1,string s2);
int main()
{
string s1, s2;
cin >> s1;
cin >> s2;
if (LetterChange(s1, s2) == true)
cout << "ok" << endl;
else
cout << "not ok " << endl;
return 0;
}
bool LetterChange(string s1, string s2)
{
//at the beginning check if they are the same of the size does not agree
if(s1 == s2 or s1.size()!= s2.size()) return false;
else{
//for every letter in s1, check if it appears in s2
for(auto letter : s1){
//if some letter does not appear, we should return false
if(s2.find(letter)==string::npos) return false;
}
//if all letters from s1 appear in s2, return true
return true;
}
}
输出为:
listen
sliten
ok
listen
listen
not ok
listeen
listen
not ok
相关文章:
- 为什么我的向量::擦除调用会抛出"vector subscript out of range"?
- 解决方案在第 25 行执行错误'out of bounds'
- C++ 向量加减抛出"expression: vector subscript out of range."错误
- 从 MSVC14 切换到 MSVC16 会导致"compiler is out of heap space (C1060)"错误
- 庞大的初始化列表,如何修复"fatal error C1060: compiler is out of heap space"
- 如何解决'vector subscript out of range'错误?
- 在析构函数中调用"delete"运算符时"compiler is out of heap space"编译器错误
- 空集"Out of bound iterator"
- 在 std::unordered_map 中插入新的键/值对会导致"out of range"异常
- 注册 Clang 检查器时出错:"out-of-line-definition of register"
- QList::operator[]中的断言失败<T>:QJoysticks 中的"index out of range"
- 尝试获取矩阵的正确对角线会导致"vector out of range"错误
- 运算符方法和返回对象"out-of-scope"?
- 如何使用 mpi 分散修复"vector subscript out of range"?
- 如何修复邻接列表中的"Debug Assertion Failed" "vector subscript out of range"
- "Vector subscript out of range",在返回声明?
- QList<T>::operator[]: "index out of range" 中的断言失败
- 多次调用存储过程时C++连接器"Commands out of sync" mySQL
- 如何处理C++'index out of bounds error'?
- MySQL 异常"connection lost during query"、"MySQL server has gone away"和"command out of sync"