gpt4 book ai didi

c - 返回由随机字母组成的字符串的指针的函数

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

我刚开始学c。所以正如我所说,它应该只是一个字符串,但我无法弄清楚所以我使用了一个数组。但它应该是一个字符串。它不打印任何内容或仅打印一些随机符号。

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

char* random_word(int num_letters);

int main(void) {

char *word = random_word(5);
puts(word);
free(word);
return 0;
}

char* random_word(int num_letters) {
int a = 1;
char *word = (char*) malloc(num_letters + 1);
char h_word[num_letters+1];
srand((unsigned) time(NULL));
int i;
for(i=0;i<sizeof(h_word);i++){
if (!i == strlen(h_word)) {
if(a){
h_word[i] = 65+rand()%(90-65);
a=0;
}else{
h_word[i] = 65+rand()%(90-65);
a=1;
}
}else h_word[i] = '\0';
}
word = h_word;
return word;

最佳答案

这里有一个问题:

word = h_word;

您正在尝试复制 h_wordword ,但这不是正确的方法。这只是重新分配指针。相反,这样做:

strcpy(word, h_word);

另外,if (!i == strlen(h_word))是有问题的,因为 h_word未初始化,因此这是未定义的行为。相反,删除 if声明并放入 h_word[i] = '\0';for之后循环。


但为什么有h_word反正?您可以将其完全删除并放入 word你在哪里h_word反而。循环可以是 for (i = 0; i < num_letters; i++) { .

关于c - 返回由随机字母组成的字符串的指针的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58589757/

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