Arrays 李> 使用后释放分配的单词 正确使用strcat 确保它不会生成零长度的单词 修复符号初始化器中的键入错误 #包括 #包括 #包括 #包括 const int MAX_WORD=10; char*get_random_单词(void){ 常量字符*符号[
李>Arrays 李> 使用后释放分配的单词 正确使用strcat 确保它不会生成零长度的单词 修复符号初始化器中的键入错误 #包括 #包括 #包括 #包括 const int MAX_WORD=10; char*get_random_单词(void){ 常量字符*符号[,arrays,c,string,pointers,memory-management,Arrays,C,String,Pointers,Memory Management,李> 使用后释放分配的单词 正确使用strcat 确保它不会生成零长度的单词 修复符号初始化器中的键入错误 #包括 #包括 #包括 #包括 const int MAX_WORD=10; char*get_random_单词(void){ 常量字符*符号[]={ “a”、“b”、“C”、“d”、“e”、“f”、“g”、“h”、“i”、“j”、“k”、“l”、“m”, “n”、“o”、“p”、“q”、“r”、“s”、“t”、“u”、“v”、“w”、“x”、“y”、“z” }; char*words
#包括
#包括
#包括
#包括
const int MAX_WORD=10;
char*get_random_单词(void){
常量字符*符号[]={
“a”、“b”、“C”、“d”、“e”、“f”、“g”、“h”、“i”、“j”、“k”、“l”、“m”,
“n”、“o”、“p”、“q”、“r”、“s”、“t”、“u”、“v”、“w”、“x”、“y”、“z”
};
char*words=calloc(MAX_WORD+1,sizeof(char));
如果(!字){
返回NULL;
}
对于(int ii=0;ii<1+(rand()%MAX_WORD);ii++){
strcat(单词、符号[rand()%26]);
}
返回单词;
}
内部主(空){
srand(时间(空));
char*new_word=get_random_word();
如果(新词){
printf(“%s\n”,新单词);
免费(新词);
返回0;
}否则{
返回1;
}
}
Un为了生成一个单词,您首先需要有一个空间来放置该单词strcat
没有空格,请阅读。也就是说,您需要使用malloc作为变量“words”@RumeOne您的第一个符号是“a”、
或“a”
?可能是打字错误(我指的是逗号)?是的,这是一种可能性。您还需要更改有关如何调用strcat的内容。要生成一个单词,您首先需要有一个空格来放入该单词strcat
没有空格,请阅读。也就是说,您需要使用malloc作为变量“words”@RumeOne您的第一个符号是“a”、
或“a”
?可能是打字错误(我指的是逗号)?是的,这是一种可能性。您还需要更改调用strcat的方式。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
char* getrand() {
char* symbols[] = {"a,", "b", "с", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"};
char* letter;
char* words;
for (int i = 0; i < rand() % 10; i++) {
letter = symbols[rand() % 26];
words = strcat(letter, symbols[rand() % 26]);
}
return words;
}
int main(void) {
srand(time(NULL));
char* new_word;
new_word = getrand();
printf("%s\n", new_word);
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAX_LEN 10
#define SYMBOLS_LEN 26
void getrand_word(char* word, int word_max_len) {
char symbols[] = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'};
char letter;
for (int i = 0; i < rand() % word_max_len; i++) {
letter = symbols[rand() % SYMBOLS_LEN];
word[i] = letter;
}
}
int main(void) {
srand(time(NULL));
char word[MAX_LEN] = {0};
getrand_word(word, MAX_LEN);
printf("%s\n", word);
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
const int MAX_WORD = 10;
char *get_random_word(void) {
const char *symbols[] = {
"a", "b", "с", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m",
"n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"
};
char *words = calloc(MAX_WORD + 1, sizeof(char));
if (!words) {
return NULL;
}
for (int ii = 0; ii < 1 + (rand() % MAX_WORD); ii++) {
strcat(words, symbols[rand() % 26]);
}
return words;
}
int main(void) {
srand(time(NULL));
char *new_word = get_random_word();
if (new_word) {
printf("%s\n", new_word);
free(new_word);
return 0;
} else {
return 1;
}
}