规定输入的字符串中只包含字母和 * 号。编写函数 fun ,其功能是:删除字符串中所有的 * 号。编写函数时,不得使用 C 语言提供的字符串函数。
时间: 2023-09-30 17:07:28 浏览: 36
好的,我来帮您编写该函数。可以使用指针遍历字符串,遇到 * 号就将其删除,然后将后面的字符向前移动一位即可。
以下是函数实现的代码示例:
```c
void fun(char *str) {
char *p = str;
while (*p != '\0') {
if (*p == '*') {
char *q = p + 1;
while (*q != '\0') {
*q = *(q + 1);
q++;
}
} else {
p++;
}
}
}
```
该函数的时间复杂度为O(n^2),其中n为字符串的长度。如果需要更高效的实现,可以使用两个指针,一个指向当前遍历到的字符,另一个指向最后一个非 * 号的字符,遇到 * 号就将当前指针后移,最后将非 * 号的字符指针后面的字符全部清零即可。
相关问题
规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:只删除字符 前导和
题目中要求编写函数fun,功能是只删除字符串中的前导和后导的字符。
假设输入的字符串为str,我们可以通过以下步骤实现所需功能:
1. 定义一个变量i,初始化为0,用于记录首个不为*号的字符的下标。
2. 从字符串的开头开始遍历,如果当前字符为*号,则将i加1;否则跳出循环。
3. 定义一个变量j,初始化为字符串长度减1,用于记录最后一个不为*号的字符的下标。
4. 从字符串的末尾开始遍历,如果当前字符为*号,则将j减1;否则跳出循环。
5. 判断i的值与j的值,如果i大于等于j,则说明字符串全由*号组成,此时返回空串。
6. 假设i的值为m,j的值为n,切片截取字符串str[m:n+1]即为去除前导和后导的字符后的字符串。返回该字符串。
具体代码如下所示:
```python
def fun(str):
i = 0
while i < len(str) and str[i] == '*':
i += 1
j = len(str) - 1
while j >= 0 and str[j] == '*':
j -= 1
if i >= j:
return ''
return str[i:j+1]
```
测试示例:
```python
print(fun("*abc")) # 输出:"abc"
print(fun("****")) # 输出:""
print(fun("a**bc*")) # 输出:"a**bc"
print(fun("*****")) # 输出:""
print(fun("*")) # 输出:""
```
注意:为了方便阅读和理解,示例代码中的变量名已更改。实际编写代码时,应尽量使用具有描述性的变量名,避免使用关键字作为变量名。
假定输入的字符串只包含字母和*号,编写fun函数 只保留尾部的*
可以使用Python来编写这个函数。
```python
def fun(s):
if not s:
return ""
i = len(s) - 1
while i >= 0 and s[i] == '*':
i -= 1
return s[:i+1]
```
这个函数首先检查输入的字符串是否为空,如果是空字符串则直接返回空字符串。然后使用一个循环从字符串的末尾开始向前遍历,直到找到第一个不是*号的字符为止,然后返回这个字符之前的子字符串。这样就可以实现只保留字符串尾部的*号的功能。
例如,对于输入"abc***",函数返回"abc";对于输入"**",函数返回""。这个函数可以有效地处理输入字符串只包含字母和*号的情况,保留尾部的*号。
相关推荐
![c](https://img-home.csdnimg.cn/images/20210720083646.png)
![c](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)