c语言删除字符串前面和后面的*,中间不删
时间: 2024-09-19 20:02:43 浏览: 48
在 C 语言中,如果你有一个字符串并想删除首尾的特定字符(在这个例子中是 '*'),你可以遍历字符串,从第二个元素开始到倒数第二个元素,将它们逐个复制到新的字符串中。这里是一个简单的示例:
```c
#include <stdio.h>
#include <string.h>
void remove_start_end_star(char *input_string, char *output_string) {
int len = strlen(input_string); // 获取输入字符串长度
if (len > 0 && input_string[0] == '*') { // 如果首字符是 *
output_string[0] = '\0'; // 新字符串不包含首星号
len--;
} else {
strncpy(output_string, input_string + 1, len - 1); // 跳过首字符,然后复制剩余部分
}
output_string[len] = '\0'; // 添加终止符
}
int main() {
char str_with_stars[] = "********Hello**";
char result[strlen(str_with_stars) + 1]; // 预留空间
remove_start_end_star(str_with_stars, result);
printf("结果: %s\n", result);
return 0;
}
```
在这个程序中,`remove_start_end_star` 函数会处理首尾的 '*' 并将剩余部分存储在 `output_string` 中。如果输入字符串首字符不是 '*',则不会做任何修改。