gpt4 book ai didi

c - 如何在 ANSI C 中用 NULL 替换字符串中的字符?

转载 作者:太空宇宙 更新时间:2023-11-04 03:51:56 24 4
gpt4 key购买 nike

我想用 ANSI C 替换字符串中的所有“a”字符。这是我的代码:

#include <stdio.h>
#include <stdlib.h>

void sos(char *dst){
while(*dst){
if(*dst == 'a')
*dst = '\0';
dst++;
}
}


int main(void){
char str[20] = "pasternak";
sos(str);
printf("str2 = %s \n", str);
return 0;
}

当我运行它时,结果是:

str2 = p

但应该是

str2 = psternk

它适用于其他字符,如“b”等。我试图将 NULL 分配给 *dst,但在编译期间出现错误。
我现在如何删除“a”字符?

最佳答案

在 C 中,字符串是以零结尾,这意味着当字符串中有一个'\0' 时,它就是字符串的结尾.

所以你所做的是将字符串分成 3 个不同的部分:

p
stern
k

如果你想删除a,你必须将a之后的所有字符移动一个位置。

关于c - 如何在 ANSI C 中用 NULL 替换字符串中的字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20031548/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com