如何将字符串放入数组

时间:2019-01-02 03:39:52

标签: c arrays string

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

我的程序的目的是生成随机字符串。而且我希望将生成的那些随机字符串放置在数组上,以便以后可以再次访问这些字符串。

const rp = require('request-promise');
const url = 'https://www.yahoo.com'; //good

const options = {
  url,
  headers: {
    'User-Agent': 'Mozilla/5.0 (Android 4.4; Mobile; rv:41.0) Gecko/41.0 Firefox/41.0'
  }
};

rp(options).then( (html) => {
    console.log(html);
}).catch( (e) => {
    console.log(e);
});

上面的代码将产生7个随机生成的8个字符的字符串。但是我的问题是我希望将生成的每个字符串都放在一个数组上,以便我可以调用它们或再次显示它们。

我在下面尝试过此操作

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

但是我的程序会崩溃。

编辑:

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

此教程的代码信用:

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

2 个答案:

答案 0 :(得分:1)

认为您正在寻找strcpy

初始化然后“推送”到数组:

char stringarray[MAX_NUMBER_STRINGS][MAX_STRING_SIZE]; 
strcpy(stringarray[0], "blah");

也main应该返回一个int,见下面main的有效选项:

int main(void);

或:

int main(int argc, char* argv[]);

参考文献:

How do I create an array of strings in C?

What are the valid signatures for C's main() function?

答案 1 :(得分:1)

您的代码存在以下问题

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

尝试以下代码:-

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