C语言规定字符串中只包含字母和*号o 编写函数fun, 其 功能是:删除字符串中所有的*号. 编写函数时,不 得使用C语言提供的字符串函数o 条件: 字符串 ""*AA***B*CCC***C*"c
时间: 2023-09-03 10:10:42 浏览: 43
抱歉,我可以回答这个问题。下面是函数fun的实现:
```c
void fun(char* str) {
char* p = str;
char* q = str;
while (*p != '\0') {
if (*p != '*') {
*q = *p;
q++;
}
p++;
}
*q = '\0';
}
```
使用双指针法,先初始化指针p和q都指向字符串的首字符,然后遍历整个字符串。如果p指向的字符不是*号,则将它复制到q指向的位置,并将q指针后移一位。最后将字符串末尾置为'\0',完成删除*号的操作。
相关问题
规定字符串中只包含字母和*号o 编写函数fun, 其 功能是:删除字符串中所有的*号. 编写函数时,不 得使用C语言提供的字符串函数o 条件: 字符串 ""*AA***B*CCC***C*"c
抱歉,我可以回答这个问题。下面是函数fun的实现代码:
```python
def fun(s):
new_s = ""
for c in s:
if c != "*":
new_s += c
return new_s
```
对于给定的字符串,函数fun会遍历每个字符,将非“*”字符添加到一个新的字符串中,最终返回该新字符串,即不包含任何“*”的原始字符串。
规定输入的字符串中只包含字母和 * 号。编写函数 fun ,其功能是:删除字符串中所有的 * 号。编写函数时,不得使用 C 语言提供的字符串函数,用c语言
好的,我来帮您编写该函数。可以使用指针遍历字符串,遇到 * 号就将其删除,然后将后面的字符向前移动一位即可。
以下是函数实现的代码示例:
```c
void fun(char *str) {
int i = 0, j = 0;
while (str[i] != '\0') {
if (str[i] != '*') {
str[j] = str[i];
j++;
}
i++;
}
str[j] = '\0';
}
```
该函数的时间复杂度为O(n),其中n为字符串的长度。使用两个指针i和j,i指向当前遍历到的字符,j指向将要被填充的位置。当i指向的字符不是 * 号时,将其填充到j指向的位置,然后将j指针后移。最后将j指针所指向的位置清零即可。
注意,为了保证字符串的结尾,需要在最后一个非 * 号字符后面添加字符串结尾符'\0'。