编写一个程序,该程序包含函数fun,它的功能是,将一个字符串,两个字符间用*隔开,如“abcd”.则输出“a*b *c*d*
时间: 2023-03-16 19:51:34 浏览: 120
以下是一个Python语言的函数fun的实现,它可以将一个字符串中的每两个字符之间插入一个星号(*):
```python
def fun(s):
result = ""
for i in range(, len(s), 2):
if i + 1 < len(s):
result += s[i] + "*" + s[i+1] + "*"
else:
result += s[i]
return result
```
使用该函数,可以将一个字符串传入函数fun中,得到插入星号后的新字符串:
```python
s = "abcd"
result = fun(s)
print(result) # 输出:a*b*c*d*
```
该函数的实现思路是:遍历字符串中的每两个字符,如果当前字符和下一个字符都存在,则将它们之间插入一个星号,否则只将当前字符加入结果字符串中。
相关问题
假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是: 除了字符串前导和尾部的*号之外,将串中其它*号全部删除。形参h已指向字符串中第一个字母,形参p已指向字符串中最后一个字母。在编写函数时,不得使用C语言提供的字符串函数。 例如,字符串中的内容为:****A*BC*DEF*G********,删除后,字符串中的内容应当是:****ABCDEFG********。在编写函数时,不得使用C语言提供的字符串函数。
好的,这是一个比较简单的字符串处理题目。我们可以使用两个指针,一个指向字符串的头部,一个指向字符串的尾部,然后分别向中间移动指针,遇到*号就跳过,遇到字母就将其复制到前面的位置。具体实现可以参考下面的代码:
```c
void fun(char *h, char *p) {
char *src = h;
char *dst = h;
while (*src == '*') { // 跳过开头的*
src++;
}
while (p > src && *p == '*') { // 跳过结尾的*
p--;
}
while (src <= p) { // 复制非*号的字符
if (*src != '*') {
*dst = *src;
dst++;
}
src++;
}
while (dst <= p) { // 将剩余的位置填充*
*dst = '*';
dst++;
}
}
```
这个函数的思路比较简单,首先跳过字符串头部和尾部的*号,然后将指针src从头部向尾部移动,遇到非*号的字符就复制到指针dst所指的位置。最后,将剩余的位置填充*号即可。
假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:删除字符串中所有的*号。在编写函数时,使用C语言程序。 例如,字符串中的内容为:****A*BC*DEF*G*******,删除后,字符串中的内容应当是:ABCDEFG。
好的,我来编写一个满足要求的C语言函数fun:
```c
void fun(char* s) {
char* p = s;
while (*p != '\0') {
if (*p != '*') {
*s = *p;
s++;
}
p++;
}
*s = '\0';
}
```
这个函数接收一个指向字符串的指针s作为输入,直接在原字符串上进行修改。
函数通过遍历输入字符串s的每一个字符,如果该字符不是*号,则将其复制到原字符串的当前位置,并将指针s后移一位。最后在原字符串的末尾添加一个结束符'\0'即可。
示例调用代码如下:
```c
char s[] = "****A*BC*DEF*G*******";
fun(s);
printf("%s\n", s); // 输出:ABCDEFG
```
阅读全文