3.假定输人的字符串中只包含字母和号,编写程序,实现删除字符串中的所有号。:输人***A ***BCDEFG***时, 则输出“ABCDEFG***"。(要求使用指针编写。
时间: 2023-07-12 13:31:39 浏览: 103
以下是使用指针编写的删除字符串中所有空格的示例代码:
```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;
}
```
该程序使用了指针来遍历整个字符串,剔除其中的所有空格,并将结果保存回原字符串。最后输出删除空格后的字符串。
相关问题
3.假定输人的字符串中只包含字母和号,编写程序,实现删除字符串中的所有号。:输人A BCDEFG***时, 则输出“ABCDEFG"。(要求使用指针编写。用c语言
可以按照以下步骤实现:
1. 定义一个字符指针,指向输入的字符串。
2. 遍历字符串,每遇到一个非号字符,就将其复制到一个新的字符串中。
3. 最后将新的字符串末尾加上一个null字符,即'\0',表示字符串的结束。
4. 输出新的字符串。
下面是具体的代码实现:
```c
#include <stdio.h>
void removeHash(char* str) {
char newStr[100];
int i, j = 0;
for (i = 0; str[i] != '\0'; i++) {
if (str[i] != '#') {
newStr[j] = str[i];
j++;
}
}
newStr[j] = '\0';
printf("%s", newStr);
}
int main() {
char str[100];
printf("请输入一个字符串:");
scanf("%s", str);
removeHash(str);
return 0;
}
```
运行程序,输入字符串后,程序将删除其中的#号并输出结果。
3.假定输人的字符串中只包含字母和*号,编写程序,实现删除字符串中的所有*号。:输人***A* BC*DEF*G***时, 则输出“ABCDEFG"。(要求使用指针编写。
好的,我来帮你解决这个问题。以下是使用指针删除字符串中所有 * 号的代码:
```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` 向后移动一个位置。最后,我们输出经过删除 * 号后的字符串。
希望这个程序能够帮助到你。
阅读全文