【发布时间】:2022-01-23 16:48:21
【问题描述】:
signed char *tab_alphabet[]={"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","\0"};
int nombreAlea(int min, int max){
return (rand()%(max-min+1) + min);
}
void generer_name(int length,signed char* n){
int i ;
signed char *j;
for (i=0;i<length;i++){
int k = nombreAlea(1,26);// from the table of the alphabet
j = tab_alphabet[k-1];
strcat(n,j);
}
}
这里是主要的:
int main () {
int a = nombreAlea(4,30);
signed char *nn;
generer_name(a,nn);
return 0 ;
}
问题是结果总是以 "a!!@" 开头,任何帮助,我对 strcat 有疑问
【问题讨论】:
-
你需要调用 srand 来初始化一个不同的随机生成器
-
nn不是字符串。所以n不是字符串。所以strcat不好 -
所以开始做:
signed char *nn;--> signed char nn[31] = "";` -
最好的建议是......编译时带有高度警告。对于
gcc使用-Wall -Wextra -Werror -pedantic并修复所有报告的问题