猿问

这个是把一个字符数组随机打乱的函数 但是strcpy那里的三行全错了为什么呢 求教啊大神

void random(char s[])

{

    int index,i;

    char temp[N];

    srand(time(NULL));

    for (i = 0; i<54; i++)

    {

        index = rand() % (54- i) + i;

        if (index != i)

        {

            strcpy(temp,s[i]);

            strcpy(s[i],s[index]);

            strcpy(s[index],temp);

        }

    }

}


qq_白水_04341277
浏览 1406回答 2
2回答

onemoo

strcpy 函数是将第二个参数所指的字符串复制到第一个参数所指的位置,这两个参数要求都是 char 指针类型。temp 作为参数没有错,但是 s[i] s[index] 所得到的都是 char 类型,与 strcpy 函数参数要求的类型不匹配。如果你只是想调换字符串中单个字符的位置,可以直接复制移动单个字符啊,不要使用 strcpy 函数。
随时随地看视频慕课网APP
我要回答