有没有其他通过遍历字符串来输出的方法,另外请使用c++
时间: 2024-04-14 15:29:57 浏览: 214
遍历的运用对c++初学者很有用的
当然可以通过遍历字符串来输出符合要求的取件码。以下是使用 C++ 的代码示例:
```cpp
#include <iostream>
#include <string>
bool isValidCode(const std::string& code) {
// 检查取件码格式是否合法
if (code.length() != 8 || code[2] != '-' || code[4] != '-') {
return false;
}
// 检查取件码是否只包含数字
for (char c : code) {
if (!isdigit(c) && c != '-') {
return false;
}
}
return true;
}
int main() {
std::string message;
std::getline(std::cin, message);
std::string code;
bool foundCode = false;
for (char c : message) {
if (isdigit(c) || c == '-') {
code += c;
} else {
if (isValidCode(code)) {
std::cout << code << std::endl;
foundCode = true;
}
code.clear();
}
}
if (!foundCode) {
std::cout << "-1" << std::endl;
}
return 0;
}
```
这段代码首先定义了一个 `isValidCode` 函数来检查取件码的格式是否合法。然后在 `main` 函数中,使用 `std::getline(std::cin, message)` 来读取输入的信息。
在遍历字符串 `message` 的过程中,如果遇到数字或 `-` 符号,则将其添加到 `code` 字符串中。如果遇到其他字符,就将 `code` 字符串传递给 `isValidCode` 函数进行检查。如果 `isValidCode` 返回 `true`,说明 `code` 是一个合法的取件码,将其输出,并将 `foundCode` 设置为 `true`。
最后,如果没有找到合法的取件码(即 `foundCode` 为 `false`),则输出 `-1`。
阅读全文