编写去除字符串两端空格的函数C++
时间: 2023-06-11 20:04:24 浏览: 64
Sure, 下面是一个简单的去除字符串两端空格的函数C代码:
```
#include <stdio.h>
#include <string.h>
void trim(char *str) {
int len = strlen(str);
int start = 0, end = len - 1;
while (isspace(str[start]) && start < end) {
start++;
}
while (isspace(str[end]) && start < end) {
end--;
}
int i;
for (i = start; i <= end; i++) {
str[i-start] = str[i];
}
str[i-start] = '\0';
}
int main() {
char str[] = " hello world ";
trim(str);
printf("[%s]\n", str);
return 0;
}
```
这个函数基本思路就是依次遍历字符串开始和末尾的位置,找到第一个非空格字符和最后一个非空格字符的位置,然后将这中间的部分复制到新的字符串中。
你可以使用该代码作为参考,在实际的工作中进行使用。
相关问题
c++用指针编写删除字符串所有尾部空格
您好!以下是使用指针删除字符串尾部空格的C++代码示例:
```c++
#include <iostream>
#include <cstring>
void removeTrailingSpaces(char* str) {
int len = strlen(str);
char* end = str + len - 1;
while (end >= str && *end == ' ') {
*end = '\0';
end--;
}
}
int main() {
char str[] = "Hello, World! ";
std::cout << "Before: " << str << std::endl;
removeTrailingSpaces(str);
std::cout << "After: " << str << std::endl;
return 0;
}
```
在上面的代码中,`removeTrailingSpaces` 函数使用指针 `end` 来追踪字符串末尾的字符,然后从末尾开始逐个检查字符是否为空格,如果是,则将其设置为 null 终止字符 '\0',直到遇到第一个非空格字符为止。最后,函数将删除多余的尾部空格。
希望这可以帮助您!如果您还有其他问题,请随时提问。
用指针编写删除字符串所有尾部空格
当然,下面是使用指针删除字符串所有尾部空格的C++代码示例:
```c++
#include <iostream>
void removeTrailingSpaces(char* str) {
if (str == nullptr) {
return;
}
char* end = str;
while (*end != '\0') {
end++;
}
end--;
while (end >= str && *end == ' ') {
*end = '\0';
end--;
}
}
int main() {
char str[] = "Hello, World! ";
std::cout << "Before: " << str << std::endl;
removeTrailingSpaces(str);
std::cout << "After: " << str << std::endl;
return 0;
}
```
在上述代码中,`removeTrailingSpaces` 函数首先检查传入的字符串指针是否为 `nullptr`,以处理空指针的情况。然后,使用一个指针 `end` 将其移动到字符串末尾的最后一个字符。接下来,从末尾开始,如果遇到空格字符,则将其替换为 null 终止字符 '\0',直到遇到第一个非空格字符为止。
希望这对您有所帮助!如果您有任何其他问题,请随时提问。