使用dev-c++从键盘输入一个字符串,删除字符串中的所有空格后输出不使用erase
时间: 2024-12-18 11:16:28 浏览: 7
详解C++的String类的字符串分割实现
5星 · 资源好评率100%
在Dev-C++中,你可以创建一个函数,接收用户从键盘输入的字符串,然后逐个遍历字符,跳过空格并将其余非空字符存储回原字符串。以下是一种实现方法:
```cpp
#include <iostream>
#include <cctype> // 包含处理字符类型的功能
void removeSpaces(std::string& input) {
for (size_t i = 0; i < input.length(); ++i) { // 遍历输入字符串
if (!isspace(input[i])) { // 判断字符是否为空格
input[i] = toupper(input[i]); // 转换为空格字符后的大小写形式(这里是转换为大写,如果你需要小写则去掉这行)
// 或者,如果你想保留原有大小写,可以移除这一行
// input[i] = input[i];
}
}
// 如果字符串开始时有空格,添加一个空格作为第一个字符
if (input[0] == ' ') {
input.erase(0, 1);
input.insert(0, " ");
}
}
int main() {
std::string input;
std::cout << "Enter a string with spaces: ";
std::getline(std::cin, input); // 读取整个行的字符串,包括空格
removeSpaces(input);
std::cout << "String without spaces: " << input << std::endl;
return 0;
}
```
这个程序会在原地修改输入字符串,移除所有的空格,并保持其他字符不变。注意,`std::getline`用于一次读取一行,包括空格。
阅读全文