好吧,我是初學者在CI被認爲是一個數組來保存到需要的字符聲明爲:陣列不需要的字符
char a[10];
所以我會從(0〜9的10個元素) 但它不是working.It是給我不需要characters.Can你告訴我這個問題is.My代碼:
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
printf("%s",rand_string());
}
int rand_string(void)
{
srand(time(NULL));
char a[7];
int e;
int d;
a[0]='l';
a[1]='o';
a[2]='n';
a[3]='g';
a[4]=' ';
d=(rand()%6) + 97;
a[5]=d;
e=(rand()%10) + 48;
a[6]=e;
printf("\n%s\n",a);
return a;
}
我得到這樣的結果: 長F99 |/
我想到: 長F9
好了,所以我總共有4個問題: *如何解決的不想要的字符的問題,爲什麼它給unwated字符? *我的生成隨機數的方式是否有限制? *如何在一行中寫出前4個字母「long」而不是數組中的每行? *如何組合2個字符串?
'rand_string()'應該聲明爲返回'char *',這就是它在內部所做的事情。顛倒'main()'和'rand_string()'的順序以避免未聲明的警告。作爲初學者,你應該啓用所有警告來捕捉這些簡單的錯誤。 – wallyk
雖然問題得到解答。您還可以在C中查找「memset」函數。0123> – Ajit
其他次要位:1)不是添加「48」,而是使用「0」。它更便於攜帶,使代碼更易於理解。 「a」和「97」相同。 2)建議確保'srand(time(NULL));'只被調用一次。也許轉到'main()'。 – chux