你这个是错误的,请不用自定义函数在做一次
时间: 2024-04-09 13:32:44 浏览: 33
非常抱歉之前的回答有误。以下是不使用自定义函数的 C++ 实现代码:
```cpp
#include <iostream>
#include <string>
int main() {
std::string s1, s2;
std::cout << "请输入两个字符串:" << std::endl;
std::cin >> s1 >> s2;
if (s1.length() != s2.length()) {
std::cout << "NO" << std::endl;
return 0;
}
std::string concatenated = s1 + s1; // 将 s1 连接自身
bool isSubstring = false;
for (int i = 0; i <= concatenated.length() - s2.length(); i++) {
int j;
for (j = 0; j < s2.length(); j++) {
if (concatenated[i + j] != s2[j]) {
break;
}
}
if (j == s2.length()) {
isSubstring = true;
break;
}
}
if (isSubstring) {
std::cout << "YES" << std::endl;
} else {
std::cout << "NO" << std::endl;
}
return 0;
}
```
在这个代码中,我们首先获取用户输入的两个字符串 `s1` 和 `s2`。然后我们检查两个字符串的长度是否相同,如果不相同则输出 "NO" 并返回。接下来,我们将字符串 `s1` 连接自身并存储在 `concatenated` 变量中。然后我们使用双重循环来判断 `s2` 是否为 `concatenated` 的子串。如果找到了子串,则将 `isSubstring` 标记为 `true`。最后根据 `isSubstring` 的值输出 "YES" 或 "NO"。
非常抱歉之前的错误回答给您带来的困扰,希望这次回答能够满足您的要求。如果还有其他问题,请随时提问。