使用fgets函数输入一个字符串,除了字符串前导*号之外,将串中其它*号全部删除。测试输入: ***A*BC**D***** 预期输出: ***ABCD
时间: 2023-12-23 12:03:25 浏览: 75
```c
#include <stdio.h>
#include <string.h>
void removeStars(char* str) {
int len = strlen(str);
int i, j;
j = 0;
for (i = 0; i < len; i++) {
if (str[i] != '*') {
str[j] = str[i];
j++;
}
}
str[j] = '\0';
}
int main() {
char str[100];
fgets(str, sizeof(str), stdin);
removeStars(str);
printf("%s\n", str);
return 0;
}
```
相关问题
c语言不使用字符串函数 规定输入的字符串中只包含字母和号,编写函数 fun,其功能是:将字符串中的前导 号和尾部号全部删除,中间的号不删除。
在C语言中,我们可以使用指针和循环结构来实现这个功能,因为标准库并没有直接提供处理字符串两侧特定字符的内置函数。下面是一个简单的`fun`函数示例:
```c
#include <stdio.h>
#include <ctype.h> // 需要头文件ctype.h获取isalpha()函数
// 函数声明
void remove_leading_trailing_chars(char *str);
int main() {
char input[100];
printf("请输入字符串(仅含字母和号): ");
fgets(input, sizeof(input), stdin); // 读取用户输入
input[strcspn(input, "\n")] = '\0'; // 删除换行符
remove_leading_trailing_chars(input);
printf("处理后的字符串: %s\n", input);
return 0;
}
// 实现函数 fun
void remove_leading_trailing_chars(char *str) {
int i, len;
len = strlen(str);
// 找到第一个非字母字符作为开始位置
for (i = 0; i < len && !isalpha(str[i]); ++i)
continue;
// 找到最后一个非字母字符作为结束位置
for (; i < len; ++i)
if (!isalpha(str[i]))
break;
// 移动指针并复制有效字符到原地
memmove(str, str + i, len - i);
str[len - i] = '\0'; // 修复新字符串长度
}
```
使用c语言编写规定输入的字符串中只包含字母和号,编写函数 fun,其功能是:将字符串中的前导 号和尾部号全部删除,中间的号不删除。 编写函数时,不得使用 C 语言提供的字符串函数
在C语言中,由于标准库不提供直接处理字符串开头和结尾特定字符的函数,我们可以手动遍历数组并实现这个功能。下面是一个简单的实现方法:
```c
#include <stdio.h>
#include <string.h>
int is_alpha(char c) {
// 判断字符是否为字母
return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z');
}
void remove_leading_trailing_dashes(char* str) {
int i, len;
if (!str[0] || str[0] == '-') { // 如果字符串为空或首字符是-
str++; // 跳过空串或首 -
}
for (len = 0; str[len]; ++len) { // 遍历直到遇到非字母
if (is_alpha(str[len])) break;
}
if (str[len] != '\0' && str[len] == '-') { // 检查是否有尾随 -
str[len] = '\0'; // 删除尾部 -
}
// 移除前面多余的 -
while (str[0] == '-') {
str++;
}
}
void print_string(const char* str) {
printf("%s", str);
}
int main() {
char input[100];
printf("请输入仅含字母和号的字符串: ");
fgets(input, sizeof(input), stdin); // 注意这里fgets会保留换行符
remove_leading_trailing_dashes(input); // 调用函数处理字符串
print_string(input);
return 0;
}
阅读全文