我很难将字符串放入数组。
我的程序的目的是生成随机字符串。我希望将生成的这些随机字符串放在一个数组中,以便稍后可以再次访问这些字符串。
char main()
{
srand(time(NULL));
char* rStr[9] = {0};
int i;
for (i = 0; i < 7; i++)
{
randomString(rStr, 8); //This is the function that generates a
//random string with 8 characters
printf("%d---%s\n", i, rStr);
}
}
以上代码将生成 7 个随机生成的 8 个字符的字符串。但我的问题是我希望生成的每个字符串都放在一个数组中,这样我就可以调用它们或再次显示它们。
我在下面试过这个:
char main()
{
srand(time(NULL));
char* rStr[9] = {0};
int i;
for (i = 0; i < 7; i++)
{
rStr[i] = randomString(rStr, 8);
printf("%d---%s\n", i, rStr[i]);
}
}
但我的程序会崩溃。
编辑:
int randomNumber(int min, int max) //This function is responsible for
//the randomness of the string
{
max -= min;
return (rand() % max) +min;
}
char randomString(char *str, int randomCharCount)
{
const char *charSet = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
int i;
for (i = 0; i < randomCharCount; i++)
{
str[i] = charSet[randomNumber(0, 35)];
}
}
本教程的代码来源:
最佳答案
您的代码存在以下问题
main()
没有return
类型。- 您必须声明单独的数组 以保存
字符串
。
试试下面的代码:-
char main()
{
srand(time(NULL));
char rStr[9] = {0};
// sStr is where the rStr are saved .
char sStr[50][9]; // max 50 rStr
int i;
for (i = 0; i < 7; i++)
{
randomString(rStr, 8);
strcpy(sStr[i],rStr);
printf("%d---%s\n", i, sStr[i]);
}
// some return value here.
return 0;
}
关于c - 如何将字符串放入数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54000957/