gpt4 book ai didi

c - 修复 C 代码和参数修复编译错误

转载 作者:行者123 更新时间:2023-11-30 21:22:55 25 4
gpt4 key购买 nike

当我编译代码时遇到这些错误。我也认为牙套位置错误。你们可以帮助我验证 for 循环的格式是否正确并调试代码。我的代码的目的是显示重复的字母和重复字母的出现。

这是编译错误:

secfun@ubuntu:~/Downloads$ gcc -Wall -Werror -o -ansi letter.out   letter.c -lm
letter.c: In function ‘main’:
letter.c:14:1: error: format ‘%s’ expects argument of type ‘char *’, but argument 2 has type ‘char (*)[(sizetype)(i)]’ [-Werror=format=]
scanf("%s", &inp);
^
letter.c: At top level:
letter.c:22:1: error: expected identifier or ‘(’ before ‘{’ token
{
^
letter.c:46:1: error: expected identifier or ‘(’ before ‘{’ token
{
^
cc1: all warnings being treated as errors

这是我的代码:

#include <stdio.h>
#include <string.h>

void printDuplicate(const char inp[], char duplicate);
void printOccurrence(const char inp[], char occurrence);

int main(void)
{
int i;
char inp[i];
char duplicate;
char occurrence;
printf("Enter a word:\n");
scanf("%s", &inp);
printf("Duplicate letter: %c, Occurences: %c", duplicate, occurrence);
printDuplicate(inp, duplicate);
printOccurrence(inp, occurrence);
return 0;
}

void printDuplicate(const char inp[], char duplicate);
{

int i, j;
int k=1;

/* For loop finding duplicate characters */

for (i = 0; i < duplicate; i++)
{
for (j = i + 1; j < duplicate; j++)
{
if (inp[i] == inp [j])
{
if (k == 1 && inp[j] != '\0')
{
inp[j] = '\0';
k++;
}
k=1;
}
}
}
}

void printOccurrence(const char inp[], char occurrence);
{

int freq = 0;

for(i = 0; inp[i] != '\0'; ++i)
{
if(occurrence == inp[i])
++freq;
}
}

最佳答案

这里有一个问题:

...
int i; // here i is not yet initialized, it contains an undetermined value
char inp[i]; // so here you declare an array with an
// undetermined length which is not good
...

然后在该行的末尾有一个额外的 ; (您打算在其中定义函数):

void printDuplicate(const char inp[], char duplicate);
^ remove this

这里也一样:

void printOccurrence(const char inp[], char occurrence);

那么 i 根本没有在 printOccurrence 中声明。

这也是错误的:

scanf("%s", &inp);

你需要这个:

scanf("%s", inp);

inp 已经是一个指向 char 的指针。

最后但并非最不重要的一点:这是无效的,因为 inp[]const

inp[j] = '\0';

可能还有更多问题。

你可能应该回到你的 C 教科书。

关于c - 修复 C 代码和参数修复编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49800939/

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