用c语言指针编写以下程序:【输入形式】输入一个字符串及需要删除的字符。 【输出形式】删除字符后的字符串。
时间: 2024-03-05 12:48:43 浏览: 64
以下是用 C 语言指针编写的程序,可以实现输入字符串和需要删除的字符,输出删除字符后的字符串。
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100], ch, *p, *q;
printf("请输入字符串:");
scanf("%s", str);
printf("请输入需要删除的字符:");
scanf(" %c", &ch);
p = q = str;
while (*p != '\0') {
if (*p != ch) {
*q = *p;
q++;
}
p++;
}
*q = '\0';
printf("删除字符后的字符串为:%s\n", str);
return 0;
}
```
程序的实现思路是,使用两个指针 `p` 和 `q` 分别指向字符串的开头,然后遍历字符串中的每个字符,如果字符不是需要删除的字符,则将该字符复制到 `q` 指向的位置,并将 `q` 指针后移一位,最后将 `q` 指向的位置设置为字符串结束符号 `\0`。最终输出删除字符后的字符串。
相关问题
用c语言做一个程序,输入一个字符串,将这个字符串中的大写英文字母除去,输出剩余的字符组成的字符串。(用指针做)输入形式:输入一个字符串,可能包含有大写英文字母。输出形式:输出除去大写英文字母的剩余字符串。
下面是用指针实现的 C 语言程序代码:
```c
#include <stdio.h>
void remove_uppercase(char *str) {
char *p = str;
while (*p != '\0') {
if (*p >= 'A' && *p <= 'Z') {
char *q = p;
while (*q != '\0') {
*q = *(q + 1);
q++;
}
} else {
p++;
}
}
}
int main() {
char str[100];
printf("请输入一个字符串:");
scanf("%s", str);
remove_uppercase(str);
printf("除去大写字母后的字符串是:%s\n", str);
return 0;
}
```
程序中的 `remove_uppercase` 函数用于去除输入字符串中的大写英文字母。它采用两个指针 `p` 和 `q`,其中 `p` 用于遍历字符串中的每个字符,如果当前字符是大写英文字母,就用 `q` 指针从当前位置开始,将后面的字符依次往前移动一个位置,最终将这个字符删除。如果当前字符不是大写英文字母,就继续遍历下一个字符。
请用C语言编写如下程序:利用指针实现从键盘输入一串字符,串,将此字符串倒置
下面是利用指针实现字符串倒置的C语言程序:
```c
#include <stdio.h>
#include <string.h>
void reverse(char *str) {
int len = strlen(str);
char *p = str, *q = str + len - 1;
while (p < q) {
char temp = *p;
*p++ = *q;
*q-- = temp;
}
}
int main() {
char str[100];
printf("请输入一个字符串:");
scanf("%s", str);
reverse(str);
printf("倒置后的字符串为:%s\n", str);
return 0;
}
```
在主函数中,首先定义一个字符数组 `str`,用于存放从键盘输入的字符串。然后调用 `reverse` 函数,将字符串倒置。最后输出倒置后的字符串。
在 `reverse` 函数中,首先使用 `strlen` 函数获取字符串的长度,并定义两个指针 `p` 和 `q`,分别指向字符串的首尾字符。然后使用循环,交换 `p` 和 `q` 指向的字符,直到 `p` 指向的字符超过了 `q` 指向的字符为止。
阅读全文