gpt4 book ai didi

c - strcat 给我一个段错误

转载 作者:太空宇宙 更新时间:2023-11-04 08:22:44 25 4
gpt4 key购买 nike

在确认 strcat 是发生错误的地方后,我接着检查作业中的前一个示例。在我之前的示例中,我使用 strcat(实际上是 strncat)的方式与我在以下代码中使用的方式相同。我不太确定。

我的程序的目的是遍历“字符串”并从字符串中删除任何出现的字符“c”。

主.c:

 char string[100]={0}, c[3];

printf("Enter a String: ");
fgets(string, 100, stdin);
if (string[98] == '\n' && string[99] == '\0') { while ( (ch = fgetc(stdin)) != EOF && ch != '\n'); }

printf("Enter a Char: ");
fgets(c, 2, stdin);
while ( (ch = fgetc(stdin)) != EOF && ch != '\n');

rmchr(string, c[0]);

标题:

rmchr(char *string, char c)
{
int i=0;
char *word[100];

int s = strlen(string);

for(i=0; i<=(s-2); i++)
{
if(string[i] != c)
{
strcat(word, string[i]);
}
}
}

最佳答案

char *word[100];

它将在您的程序中保存一个字符串,因此请使用:

char word[100];

char 数组,而不是 char * 数组。

然后 strcat 连接成一个字符串,但是 word 没有被初始化。使它成为一个字符串:

word[0] = '\0';

然后 string[i] 是一个字符,但是 strcat 需要指向字符参数的指针:要使用指针,请使用 &string[i]

最后,您的 rmchr 函数中的问题是它必须通过参数或通过 return 语句返回一些东西,但它没有。

关于c - strcat 给我一个段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32726143/

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