通过'的参数1;strcpy&x27;从不带强制转换的整数生成指针

通过'的参数1;strcpy&x27;从不带强制转换的整数生成指针,c,C,一个班里有几个学生。 我需要按字母顺序给学生排序。 老师给一个数字排序,这是一个学生的数字。我需要打印学生的名字。但我收到以下错误: [注意]应为'const char*restrict,但参数的类型为'char' [警告]传递'strcmp'的参数1会使指针从整数变为不带强制转换的整数 “strcmp”的参数2和“strcpy”的所有参数都会重复此警告 代码: #包括 #包括 #包括 int main(){ int N,K,K,i,j; //学生姓名 scanf(“%d”和“&N”); //学

一个班里有几个学生。 我需要按字母顺序给学生排序。 老师给一个数字排序,这是一个学生的数字。我需要打印学生的名字。但我收到以下错误: [注意]应为'const char*restrict,但参数的类型为'char' [警告]传递'strcmp'的参数1会使指针从整数变为不带强制转换的整数 “strcmp”的参数2和“strcpy”的所有参数都会重复此警告

代码:

#包括
#包括
#包括
int main(){
int N,K,K,i,j;
//学生姓名
scanf(“%d”和“&N”);
//学生姓名向量
charvetor[N];
字符辅助[N];
//让字符串e加载到vetor上

对于(i=0;i您使用的是
char
数组的
N
大小,但是您尝试使用一个系统调用将字符串从一个数组复制到另一个数组,而不是单个
char

就您的代码而言,您可以:

if(strcmp(vetor, vetor) < 0) {
    //string copy
    strcpy(aux, vetor);
    strcpy(vetor, vetor);
    strcpy(vetor, aux);
}
if(strcmp(vetor,vetor)<0){
//字符串副本
strcpy(辅助、审查);
strcpy(vetor,vetor);
strcpy(审查员、辅助人员);
}

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

您使用的是大小为
N
char
数组,但您试图使用一个系统调用将字符串从一个数组复制到另一个数组,而不是单个
char

就您的代码而言,您可以:

if(strcmp(vetor, vetor) < 0) {
    //string copy
    strcpy(aux, vetor);
    strcpy(vetor, vetor);
    strcpy(vetor, aux);
}
if(strcmp(vetor,vetor)<0){
//字符串副本
strcpy(辅助、审查);
strcpy(vetor,vetor);
strcpy(审查员、辅助人员);
}

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

aux[i]和vetor[i]是单个字符,而不是strcpy和strcmp expecttry char vector[N][50];char aux[50];在if块中,使用strcpy(aux,vector[i]);strcpy(vector[j],aux);第一个for块可以更改为for(i=0 iaux
vetor
指定
char
数组,如果以null结尾,这些数组将构成字符串
指定单个字符。这些字符不会衰减为指针,也不能被视为字符串。aux[i]和vetor[i]是单个字符,而不是字符串作为strcpy和strcmp expecttry char vector[N][50];char aux[50];在if块中,使用strcpy(aux,vector[i]);strcpy(vector[j],aux);并且第一个for块可以更改为for(i=0 iaux
vetor
指定
char
数组,如果以null结尾,这些数组将构成字符串指定单个字符。这些字符不会衰减为指针,不能被视为字符串。