编写一个函数,用于去掉字符串尾部的空格符。 函数原型为:char *mytrim(char *string);其中参数 string 为字符串,返回值为指向 string 的指针
时间: 2024-04-17 17:27:04 浏览: 141
好的,以下是一个简单的实现示例:
```c
#include <stdio.h>
#include <string.h>
char* mytrim(char* string) {
int length = strlen(string);
int i;
// 从尾部开始遍历字符串,找到第一个非空格字符的位置
for (i = length - 1; i >= 0; i--) {
if (string[i] != ' ') {
break;
}
}
// 在第一个非空格字符的位置后面添加字符串结束符 '\0'
string[i + 1] = '\0';
return string;
}
int main() {
char str[100];
printf("请输入一个字符串: ");
fgets(str, sizeof(str), stdin);
// 调用 mytrim 函数去除尾部空格
char* trimmed = mytrim(str);
printf("去除尾部空格后的字符串为: %s\n", trimmed);
return 0;
}
```
在这个示例中,我们使用循环从字符串的尾部开始遍历,找到第一个非空格字符的位置,然后在该位置后面添加字符串结束符 '\0',这样就去除了尾部的空格。注意,这个示例假设输入的字符串长度不超过 100。
相关问题
题目:规定输入的字符串中只包含字母和*号。请编写函数fun,其功能 是:将字符串尾部的*号全部删除,前面和中间的*号不动。 例如:字符串中的内容为:"****A*BC*DEF*G********", 应当是:*"****A*BC*DEF*G"
为了实现这个功能,你可以编写一个名为 `fun` 的 C 语言函数,该函数接受一个指向字符数组的指针,并遍历字符串,直到遇到字符串结尾或者遇到非星号字符。然后返回修改后的字符串。以下是一个简单的实现:
```c
#include <stdio.h>
#include <string.h>
// 函数声明,返回值为指向新字符串的指针(不是原始字符串,而是新分配的空间)
char* fun(char* str);
// 主要的 fun 函数实现
char* fun(char* str) {
int i = 0, j = strlen(str) - 1; // i 用于遍历字符串前半部分,j 从后往前遍历
while (i < j && str[i] == '*') { // 当前字符是 *,并且 i 不到 j 时
i++; // 前进一位
}
// 在找到非 * 字符或者到达字符串尾部时停止
char* new_str = (char*)malloc(strlen(str) - (j - i + 1)); // 重新分配内存空间
strncpy(new_str, str + i, strlen(str) - i); // 复制非 * 部分到新字符串
new_str[strlen(new_str) - 1] = '\0'; // 添加字符串结束符
return new_str;
}
int main() {
char str[] = "****A*BC*DEF*G********";
char* result = fun(str);
printf("Modified string: %s\n", result); // 输出结果
free(result); // 释放新字符串内存
return 0;
}
```
在这个代码中,`fun` 函数首先找到第一个非 * 字符的位置,然后创建一个新的字符串并复制这部分内容到新字符串中。注意,你需要确保在使用完新字符串后调用 `free` 函数来释放动态分配的内存。
编写函数fun(char+*a),其功能是:除了字符串前后连续的*号外,将字符串中间的*号全部删除。主函数中输入字符串,调用函数,并输出结果字符串。若输出:******A*BC*DEF*G****,删
```python
def fun(char):
# 判断字符串是否为空
if not char:
return ""
# 删除字符串前导的*号
while char[0] == "*":
char = char[1:]
# 删除字符串尾部的*号
while char[-1] == "*":
char = char[:-1]
# 删除字符串中间的*号
i = 0
while i < len(char) - 1:
if char[i] == "*" and char[i+1] == "*":
char = char[:i] + char[i+1:]
else:
i += 1
return char
# 主函数
string = "******A*BC*DEF*G****"
result = fun(string)
print(result) # 输出:A*BC*DEF*G
```
阅读全文