c语言删除字符串前导和尾部的*
时间: 2023-12-27 12:05:23 浏览: 187
你可以使用以下函数删除字符串前导和尾部的 "*":
```c
#include <stdio.h>
#include <string.h>
void trim(char *str) {
int len = strlen(str);
int start = 0, end = len - 1;
// 删除前导 "*"
while (start < len && str[start] == '*') {
start++;
}
// 删除尾部 "*"
while (end >= 0 && str[end] == '*') {
end--;
}
// 移动字符串
if (start > 0) {
memmove(str, str + start, len - start + 1);
}
// 删除尾部 "*"
if (end < len - 1) {
str[end + 1] = '\0';
}
}
int main() {
char str[] = "***hello***world***";
trim(str);
printf("%s\n", str); // 输出 "hello***world"
return 0;
}
```
这个函数首先使用两个 while 循环分别删除字符串的前导和尾部的 "*",然后使用 memmove 函数将字符串向左移动,最后将尾部的 "*" 替换为 '\0',从而完成删除操作。
阅读全文