gpt4 book ai didi

C:定义函数,它接受常量字符串数组,返回随机选择的一个

转载 作者:行者123 更新时间:2023-11-30 14:46:07 30 4
gpt4 key购买 nike

我在使用 C 语言中的字符串时遇到问题。这是我的函数,它接受一组字符串并返回一个随机选择的字符串。 randint(int n) 是一个返回 1 到 n 之间的随机整数的函数。

int rand_word(const char ARR[]) {
int r = randint(sizeof(ARR));
return(ARR[r]);
}

这是我的 main():

int main() {
const char *WORDS[3];

WORDS[0] = "a";
WORDS[1] = "b";
WORDS[2] = "c";

printf("%s", rand_word(WORDS));

return 0;
}

我希望看到打印“a”、“b”或“c”。

[Error] cannot convert 'const char**' to 'const char*' for argument '1' to 'int rand_word(const char*)'

本质上我的困惑在于数据类型之间。我做错了什么?谢谢。

最佳答案

忽略 rand_word 100% 错误的事实,让我们只处理错误消息。

您有一个函数,该函数被声明为以 char 数组 (char[]) 作为参数。您将它和指向 char 数组的指针数组传递给它。那是无效的。

更改 rand_word 以接受 char *ARR[]

现在 rand_word 是错误的

a) sizeof (ARR) 始终为 4 或 8。它是指针的大小。您无法检查指向数组的指针并确定数组的长度。传入第二个参数和长度

b) 该函数返回一个 int。它应该返回一个指向字符串的指针

关于C:定义函数,它接受常量字符串数组,返回随机选择的一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52541245/

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