c++中char类型数组如何忽略输入中的所有空格
时间: 2024-10-07 11:01:51 浏览: 66
在C++中,如果你想要读取一个字符数组并忽略其中的所有空格,可以使用`std::getline`函数配合循环来实现。这里有一个简单的例子:
```cpp
#include <iostream>
#include <sstream>
void ignoreSpaces(char* arr, int& size) {
std::istringstream iss(std::string(arr)); // 使用istringstream将字符串转换成流
std::string token;
while (iss >> token) { // 逐个读取非空格字符
if (!isspace(token[0])) { // 检查第一个字符是否为空格
*arr = token[0]; // 如果不是,将其复制到数组中
arr++; // 移动指针到下一个位置
}
if (token != "") { // 只有当读取到非空串时才增加大小
size++;
}
}
*arr = '\0'; // 结束数组(添加终止符'\0')
}
int main() {
char inputArr[100];
int size = 0;
std::cout << "Enter a string with spaces: ";
std::cin.getline(inputArr, sizeof(inputArr));
ignoreSpaces(inputArr, size); // 调用函数处理
std::cout << "Processed string: ";
for (int i = 0; i < size; i++) {
std::cout << inputArr[i];
}
return 0;
}
```
在这个例子中,`ignoreSpaces`函数会跳过连续的空格并将非空格字符放入数组中,直到遇到换行符。注意,这个程序假定输入不会超过数组的长度限制。
阅读全文
相关推荐


















