编写一个通过指针实现输入字符串,删除指定字符串
时间: 2024-04-17 10:26:50 浏览: 22
可以按照以下步骤实现:
1. 从键盘输入一个字符ch和一个字符串str。
2. 定义一个字符指针p,指向字符串str的首地址。
3. 使用while循环遍历字符串str,当*p不等于'\'时执行以下操作:
a. 如果*p等于字符ch,则将*p赋值为'\',表示删除该字符。
b. 将p指针向后移动一位,指向下一个字符。
4. 输出删除后的字符串str。
具体代码如下:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char ch, str[100];
printf("请输入一个字符和一个字符串:\n");
scanf("%c%s", &ch, str);
char *p = str;
while (*p != '\') {
if (*p == ch) {
*p = '\';
}
p++;
}
printf("删除后的字符串为:%s\n", str);
return ;
}
```
相关问题
cpp编写一个函数使用指针字符实现字符串拷贝
下面是一个使用指针字符实现字符串拷贝的函数示例:
```cpp
#include <iostream>
using namespace std;
void stringCopy(char* dest, const char* src)
{
while (*src != '\0') {
*dest = *src;
++dest;
++src;
}
*dest = '\0';
}
int main()
{
char str1[20] = "Hello";
char str2[20];
stringCopy(str2, str1);
cout << "str1: " << str1 << endl;
cout << "str2: " << str2 << endl;
return 0;
}
```
在上面的代码中,`stringCopy` 函数使用两个指针参数 `dest` 和 `src` 分别指向目标字符串和源字符串的第一个字符。然后,函数在循环中逐个复制源字符串中的字符到目标字符串中,直到源字符串的结尾,最后在目标字符串的结尾添加一个空字符。在 `main` 函数中,我们使用 `stringCopy` 函数将 `str1` 中的内容拷贝到 `str2` 中,并输出两个字符串的值。
编写一个c语言实现输入长度不知的字符串数组
好的,以下是一个简单的 C 语言程序,用于输入长度不确定的字符串数组:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
char** arr; // 定义指向字符指针的指针
int n, i;
printf("请输入字符串数组的长度:");
scanf("%d", &n);
// 分配空间
arr = (char**)malloc(n * sizeof(char*));
// 输入字符串
for (i = 0; i < n; i++) {
char str[100];
printf("请输入第 %d 个字符串:", i+1);
scanf("%s", str);
arr[i] = (char*)malloc(strlen(str) + 1);
strcpy(arr[i], str);
}
// 输出字符串
printf("输入的字符串数组为:\n");
for (i = 0; i < n; i++) {
printf("%s\n", arr[i]);
}
// 释放空间
for (i = 0; i < n; i++) {
free(arr[i]);
}
free(arr);
return 0;
}
```
在这个程序中,我们首先要求用户输入字符串数组的长度,然后我们分配了一个指向字符指针的指针 `arr`,并分配了足够的空间来存储字符串。接下来,我们使用循环来输入字符串,并使用 `malloc` 分配足够的空间来存储每个字符串。最后,我们输出输入的字符串数组,然后释放了我们分配的内存空间。
请注意,由于字符串长度不确定,因此我们使用 `malloc` 和 `free` 来动态分配和释放内存空间。