多组读入,每组输入一行字符串,规定输入的字符串中只包含字母和*号,除了尾部的*号之外,请将字符串中其他*号全部删除。 输入 输入数据包括一串字符串,只包含字母和*,总长度不超过80。 输出 输出按要求删除*后的字符串。(组与组之间要换行) 用c语言
时间: 2024-11-15 11:23:00 浏览: 73
在C语言中,你可以使用`fgets()`函数逐行读取输入,并使用`strspn()`和`strstr()`函数处理每一行。这里是一个简单的示例程序,它会满足题目要求:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LINE_LENGTH 80
void delete_trailing_star(char *str) {
int i = strlen(str);
// 找到非*字符的位置
while (i > 0 && str[i - 1] == '*') {
i--;
}
// 如果不是以*结尾,则保持原样
if (i == strlen(str)) {
printf("%s\n", str); // 直接打印原始字符串
} else {
str[i] = '\0'; // 截断字符串于非*字符处
printf("%s\n", str); // 打印处理过的字符串
}
}
int main() {
char line[MAX_LINE_LENGTH];
while (fgets(line, sizeof(line), stdin)) { // 从标准输入逐行读取
if (*line != '\n') { // 检查是否到达文件结束
delete_trailing_star(line); // 删除尾部的*
}
}
return 0;
}
```
在这个程序中,`delete_trailing_star()`函数用于删除尾部的星号,而`main()`循环负责读取用户输入并调用这个函数。
阅读全文
相关推荐


















