3.假定输人的字符串中只包含字母和*号,编写程序,实现删除字符串中的所有*号。:输人***A* BC*DEF*G***时, 则输出“ABCDEFG"。(要求使用指针编写。
时间: 2023-07-12 07:31:33 浏览: 88
好的,我来帮你解决这个问题。以下是使用指针删除字符串中所有 * 号的代码:
```c
#include <stdio.h>
void delete_star(char *str) {
char *p = str;
while (*p != '\0') {
if (*p == '*') {
char *q = p;
while (*q != '\0') {
*q = *(q + 1);
q++;
}
} else {
p++;
}
}
}
int main() {
char str[] = "***A* BC*DEF*G***";
delete_star(str);
printf("%s\n", str);
return 0;
}
```
在这个程序中,我们首先定义了一个指向字符串的指针 `p`,并使用 `while` 循环遍历字符串中的每个字符。如果当前字符是 * 号,我们就使用另一个指针 `q` 在字符串中移动,将后面的字符依次向前移动一个位置,直到遇到字符串的结尾。如果当前字符不是 * 号,我们就简单地将指针 `p` 向后移动一个位置。最后,我们输出经过删除 * 号后的字符串。
希望这个程序能够帮助到你。
相关问题
3.假定输人的字符串中只包含字母和号,编写程序,实现删除字符串中的所有号。:输人***A ***BCDEFG***时, 则输出“ABCDEFG***"。(要求使用指针编写。
以下是使用指针编写的删除字符串中所有空格的示例代码:
```c
#include <stdio.h>
#include <string.h>
void remove_space(char *str) {
int i, j = 0;
for (i = 0; str[i]; i++) {
if (str[i] != ' ') {
str[j++] = str[i];
}
}
str[j] = '\0'; // 添加字符串结束符
}
int main() {
char str[100];
printf("输入字符串:");
fgets(str, 100, stdin); // 接收字符串输入
str[strcspn(str, "\n")] = '\0'; // 去除 fgets 函数输入时附带的换行符
remove_space(str);
printf("删除空格后的字符串:%s\n", str);
return 0;
}
```
该程序使用了指针来遍历整个字符串,剔除其中的所有空格,并将结果保存回原字符串。最后输出删除空格后的字符串。
程序设计: 题目:假定输入的字符串中只包含字母和*号。编写程序只删除字符串的前面号。例如,***ACFF**,删除后,字符串中的字符为ACFF**
好的,我理解了你的问题。以下是一个简单的 Python 函数,可以完成你所描述的任务:
```python
def remove_stars(s):
i = 0
while i < len(s) and s[i] == '*':
i += 1
return s[i:]
```
你可以将你想要处理的字符串传递给这个函数,它将返回一个删除前面星号的新字符串。例如:
```python
>>> s = '***ACFF**'
>>> remove_stars(s)
'ACFF**'
```
希望这可以帮助你解决问题。如果你有任何其他问题,请随时问我。
阅读全文