规定输入的字符串中只包含字母和 * 号。编写函数 fun ,其功能是:删除字符串中所有的 * 号。编写函数时,不得使用 C 语言提供的字符串函数。 例如: 输入:****A*BC*DEF*G*******; 输出:ABCDEFG
时间: 2023-07-01 15:26:29 浏览: 51
好的,以下是删除字符串中所有 * 号的代码实现:
```c
#include <stdio.h>
void fun(char *str) {
int len = 0;
while (str[len] != '\0') { // 计算字符串长度
len++;
}
int i = 0, j = 0;
for (i = 0; i < len; i++) {
if (str[i] != '*') { // 如果不是 * 号,就将其复制到新的字符串中
str[j] = str[i];
j++;
}
}
str[j] = '\0'; // 在新字符串的结尾添加 '\0',表示字符串的结束
}
int main() {
char str[] = "****A*BC*DEF*G*******";
printf("原字符串:%s\n", str);
fun(str);
printf("删除 * 号后的字符串:%s\n", str);
return 0;
}
```
输出结果为:
```
原字符串:****A*BC*DEF*G*******
删除 * 号后的字符串:ABCDEFG
```
这个函数的实现思路比较简单,就是遍历字符串中的每个字符,如果不是 * 号,则将其复制到新的字符串中,最后将新字符串的结尾设置为 '\0'。
相关问题
规定输入的字符串中只包含字母和*号。请编写函数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 ,其功能是:删除字符串中所有的 * 号。编写函数时,不得使用 C 语言提供的字符串函数。
好的,以下是C语言编写的程序:
```
#include <stdio.h>
void fun(char *str);
int main() {
char str[100];
printf("请输入一个只包含字母和*号的字符串:");
scanf("%s", str);
fun(str);
printf("删除*号后的字符串为:%s\n", str);
return 0;
}
void fun(char *str) {
char *p1, *p2;
p1 = p2 = str;
while (*p1 != '\0') {
if (*p1 != '*') {
*p2 = *p1;
p2++;
}
p1++;
}
*p2 = '\0';
}
```
程序的运行流程如下:
1. 首先,程序要求用户输入一个只包含字母和*号的字符串。
2. 然后,程序调用fun函数删除字符串中所有的*号。具体操作是:使用两个指针p1和p2分别指向字符串的开头,遍历字符串中的每个字符,如果该字符不是*号,则将其赋值给p2所指向的位置并将p2指针向后移动一位,否则不做任何操作。最后,在p2所指向的位置添加字符串结束标志'\0'。
3. 最后,程序输出删除*号后的字符串。
希望可以帮助到你!