传递'strcpy'的参数1使得指针来自整数而没有强制转换

时间:2017-03-30 01:56:39

标签: c

班上有几个学生。 我需要按字母顺序对学生进行排序。 老师对一个号码进行排序,这是一个学生号码。我需要打印学生的姓名。但我收到以下错误: [注意]预期'const char * restrict '但参数类型为'char' [警告]传递'strcmp'的参数1使得指针来自整数而没有强制转换 警告重复'strcmp'的参数2和'strcpy'的所有参数。

代码:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main() { 
int N, K, k, i, j;
//students names
scanf("%d", &N);
//vector with students names
char vetor[N];
char aux[N];

//get string e load it on vetor
for(i=0; i<N; i++)
    scanf("%s", vetor[i]);

//alphabetic order
for(i=0; i<N; i++) {
    for(j=0; j<N; j++) {
        //string comparison
        if(strcmp(vetor[i], vetor[j]) < 0) {
        //string copy
        strcpy(aux[i], vetor[i]);
        strcpy(vetor[i], vetor[j]);
        strcpy(vetor[j], aux[i]);
        }
    }
}
//get sorted number 
scanf("%d", &K); 
K=vetor[K];
//print sorted student name
printf("%s", vetor[K]);

return 0;
}

1 个答案:

答案 0 :(得分:0)

您正在使用char N大小的char数组,但您正在尝试使用将字符串从一个数组复制到另一个数组的系统调用,而不是单个if(strcmp(vetor, vetor) < 0) { //string copy strcpy(aux, vetor); strcpy(vetor, vetor); strcpy(vetor, aux); }

就您的代码而言,您可以这样做:

Html.fromHtml

请注意,数组就像一个指针:它指向数组的第一个元素。