用C + +输入字符串(其中必须包含英文逗号,可以包含空格,长度不超过100),请输出字符串中逗号之前的所有内容
时间: 2024-10-17 22:03:13 浏览: 20
在 C++ 中,你可以使用标准库中的 `std::getline` 函数配合 `std::istringstream` 来读取输入的字符串,并利用 `substr` 或者 `find` 函数获取逗号前的部分。这里是一个简单的示例:
```cpp
#include <iostream>
#include <sstream>
std::string getSubstringBeforeComma(const std::string& input) {
std::istringstream iss(input);
std::string substring;
if (iss >> substring) { // 从输入流中读取直到遇到第一个非空白字符
// 如果最后一个字符不是逗号,说明没有逗号存在,直接返回整个输入
if (substring.back() != ',') {
return substring;
} else {
// 如果有逗号,找到第一个逗号的位置并截取到该位置前的内容
size_t commaPos = substring.find(',');
if (commaPos != std::string::npos) {
substring = substring.substr(0, commaPos); // 截取到逗号前
}
return substring;
}
} else {
// 输入流无法读取到内容,可能是因为一开始就包含了逗号,直接返回空字符串
return "";
}
}
int main() {
std::string input;
std::cout << "请输入一个字符串,其中必须包含英文逗号:";
getline(std::cin, input);
if (input.length() > 100) {
std::cerr << "警告:输入字符串长度超过100字符!\n";
} else {
std::string result = getSubstringBeforeComma(input);
std::cout << "逗号之前的部分是:" << result << std::endl;
}
return 0;
}
```
阅读全文