C++去掉字符串中的空白字符
时间: 2023-09-03 13:15:04 浏览: 227
好的,我明白了。以下是去掉字符串中的空白字符的C代码:
```c
#include <stdio.h>
#include <string.h>
void remove_spaces(char* str) {
int i, j = 0;
for (i = 0; str[i]; i++) {
if (str[i] != ' ') {
str[j++] = str[i];
}
}
str[j] = '\0';
}
int main() {
char str[100];
printf("请输入一段字符串:");
fgets(str, 100, stdin);
remove_spaces(str);
printf("去除空白字符后的字符串为:%s\n", str);
return 0;
}
```
希望能对您有所帮助。
相关问题
C++ 查找字符串里的所有不合法的字符,并把他们去除,不改变其他字符的位置
在C++中,你可以遍历整个字符串,检查每个字符是否合法,然后使用`std::string`的`erase()`或`replace()`函数将其移除。这通常需要定义一个判断字符合法性的方式。例如,假设我们只关心ASCII控制字符(如制表符、换行符等),可以这样做:
```cpp
#include <iostream>
#include <string>
#include <cctype> // 包含isalnum()用于检查字符是否为字母或数字
bool is_valid_char(char c) {
return !std::ispunct(c) && !std::isspace(c) && std::isalnum(c); // 非控制字符、非空白且非字母数字以外的字符
}
std::string sanitize_string(const std::string& input) {
std::string sanitized;
for (char c : input) {
if (is_valid_char(c)) {
sanitized += c; // 只添加合法字符
}
}
return sanitized;
}
int main() {
std::string str = "Hello\tWorld!@#$";
std::cout << sanitize_string(str) << std::endl; // 输出 "HelloWorld"
return 0;
}
```
在这个例子中,`is_valid_char()`函数用于检查字符是否合法,`sanitize_string()`函数则遍历输入字符串并只保留合法字符。
c++ std20 字符串 去掉空格
在C++20标准库中,你可以使用`std::remove_if()`函数结合`std::isspace()`来去掉字符串中的所有空格。`std::isspace()`是一个字符分类函数,如果输入的是空白字符(包括空格、制表符、换行符等),它会返回`true`。下面是一个简单的示例:
```cpp
#include <string>
#include <algorithm>
#include <cctype>
std::string remove_spaces(const std::string& str) {
str.erase(std::remove_if(str.begin(), str.end(), ::isspace), str.end());
return str;
}
int main() {
std::string original_str = "Hello World with spaces";
std::string result = remove_spaces(original_str);
std::cout << "Original string: " << original_str << "\n";
std::cout << "String without spaces: " << result << "\n";
return 0;
}
```
在这个例子中,`std::remove_if()`找到所有的空格字符并从原始字符串中移除它们,最后返回处理后的字符串。
阅读全文