c - 如何将字符串放入数组

标签 c arrays string

我很难将字符串放入数组。

我的程序的目的是生成随机字符串。我希望将生成的这些随机字符串放在一个数组中,以便稍后可以再次访问这些字符串。

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)];
    }
}

本教程的代码来源:

https://www.youtube.com/watch?v=3l1TKWVKyAY&index=58&list=PL0170B6E7DD6D8810&fbclid=IwAR2qq87y9qKt4PKPSZrwoRF10j1V9NU9W055j3-1YBXNBU7YtFDMMa1mxMg

https://www.youtube.com/watch?v=3l1TKWVKyAY&index=58&list=PL0170B6E7DD6D8810&fbclid=IwAR2qq87y9qKt4PKPSZrwoRF10j1V9NU9W055j3-1YBXNBU7YtFDMMa1mxMg

最佳答案

您的代码存在以下问题

  1. main() 没有return 类型。
  2. 您必须声明单独的数组 以保存字符串

试试下面的代码:-

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/

相关文章:

c - C中图形的一些链接

java - 随机访问数组,如何跳过重复项?

c++如何在 vector 中的特定位置显示元素的字符串属性?

linux - TextMate bundle 在所选的每行上方插入一行文本?

c++ - 将字符串指针传递给 C++ 中的结构

c - gcc 和 g++ 编译器创建的 C 程序可执行文件之间的性能差异

c - C 预处理器是先删除注释还是先扩展宏?

c - 在递归函数中删除链表的节点

java - 将运算符保存在数组中,错误

c++ - 初始化结构数组 C++ 时出现问题