一个长度不超过255的字符串前后各有若干个无用的符号,编写函数stringBlank,将该字符串前后的无用的符号去除。(允许字符串之间出现符号 void stringBlank(char *str); int main() char sl]=“...abc..“ stringBlank(s); cout<<s<<endl; return 0; 24
时间: 2024-03-06 20:46:46 浏览: 178
主要内容-字符串匹配
好的,我明白了。这是一个字符串处理的问题,我可以帮您编写一个函数来去除字符串前后的无用符号。以下是代码实现:
```
#include <iostream>
#include <cstring>
using namespace std;
void stringBlank(char *str) {
int len = strlen(str);
int left = 0, right = len - 1;
// 去除前面的无用符号
while (left < len && (str[left] == ' ' || str[left] == '\t' || str[left] == '\n' || str[left] == '\r')) {
left++;
}
// 去除后面的无用符号
while (right >= 0 && (str[right] == ' ' || str[right] == '\t' || str[right] == '\n' || str[right] == '\r')) {
right--;
}
// 将有效部分拷贝到字符串的最前面
for (int i = left; i <= right; i++) {
str[i - left] = str[i];
}
// 在有效部分后添加字符串结束符
str[right - left + 1] = '\0';
}
int main() {
char s[] = "...abc..";
stringBlank(s);
cout << s << endl;
return 0;
}
```
该函数使用两个指针,一个指向字符串的头部,一个指向尾部,分别向中间移动,去除前后的无用符号。然后将有效部分拷贝到字符串的最前面,并在有效部分后添加字符串结束符。最后输出去除无用符号后的字符串。
注意:该函数只能处理长度不超过255的字符串,如果需要处理更长的字符串,需要对代码进行修改。
阅读全文