提交时间:2025-03-23 09:36:18

运行 ID: 313815

#include <stdio.h> #include <string.h> #define MAX_LENGTH 1000 void remove_middle_asterisks(char *str) { int len = strlen(str); int start = 0; int end = len - 1; // 找到前导 * 的结束位置 while (start < len && str[start] == '*') { start++; } // 找到后缀 * 的开始位置 while (end >= 0 && str[end] == '*') { end--; } // 复制非 * 字符到新位置 int new_index = start; for (int i = start; i <= end; i++) { if (str[i] != '*') { str[new_index] = str[i]; new_index++; } } // 复制后缀 * for (int i = end + 1; i < len; i++) { str[new_index] = str[i]; new_index++; } // 添加字符串结束符 str[new_index] = '\0'; } int main() { char str[MAX_LENGTH]; fgets(str, MAX_LENGTH, stdin); // 去除 fgets 可能读取的换行符 str[strcspn(str, "\n")] = 0; remove_middle_asterisks(str); printf("%s\n", str); return 0; }