删除字符串中指定字符指针完成
时间: 2023-03-26 08:02:58 浏览: 207
可以使用指针遍历字符串,判断每个字符是否为指定字符,如果不是则将其复制到新的字符串中,最后在新的字符串末尾添加结束符'\'。具体实现可以参考以下代码:
```c
void deleteChar(char *str, char c) {
char *p = str;
char *q = str;
while (*p != '\') {
if (*p != c) {
*q = *p;
q++;
}
p++;
}
*q = '\';
}
```
其中,str为原始字符串的指针,c为要删除的字符。函数会直接修改原始字符串,删除指定字符后的结果保存在原始字符串中。
相关问题
利用c语言指针删除字符串中指定的字符
以下是利用 C 语言指针删除字符串中指定字符的代码实现:
```c
#include<stdio.h>
void delete_char(char* str, char c)
{
char* p = str;
while (*p != '\0')
{
if (*p == c)
{
char* q = p;
while (*q != '\0')
{
*q = *(q + 1);
q++;
}
p--;
}
p++;
}
}
int main()
{
char str[100] = "hello world";
delete_char(str, 'l');
printf("%s", str);
return 0;
}
```
该代码利用指针遍历输入的字符串,并当遇到与指定字符相同的字符时,使用另一个指针 q 将该字符删除。
注意:该代码并没有考虑到删除字符后字符串长度变短的问题。
用指针实现删除字符串中出现的指定字符
可以使用指针来实现删除字符串中出现的指定字符。具体步骤如下:
1. 定义一个指向字符串的指针,指向要删除字符的字符串。
2. 定义一个指向字符的指针,指向要删除的字符。
3. 使用 while 循环遍历字符串,判断当前字符是否为要删除的字符。
4. 如果当前字符不是要删除的字符,将其复制到新的字符串中。
5. 如果当前字符是要删除的字符,跳过该字符,继续遍历。
6. 遍历完字符串后,将新的字符串的末尾设置为 '\',表示字符串的结束。
7. 最后返回新的字符串。
示例代码如下:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char* delete_char(char* str, char c) {
char* new_str = (char*)malloc(strlen(str) + 1); // 分配新的字符串空间
char* p = str; // 指向原字符串的指针
char* q = new_str; // 指向新字符串的指针
while (*p != '\') {
if (*p != c) {
*q = *p;
q++;
}
p++;
}
*q = '\'; // 设置新字符串的末尾为 '\'
return new_str;
}
int main() {
char str[] = "hello world";
char c = 'l';
char* new_str = delete_char(str, c);
printf("%s\n", new_str); // 输出结果为 "heo word"
free(new_str); // 释放新字符串的空间
return ;
}
```