C strcpy和char
我需要写一个代码来实现这一点:你输入名字、名字和分数。仅当年级>=10时,您可以使用反向排序打印学生的姓名和名。 例如: 上下快速移动 迪伦 12 罗伯特 派特 9 克里斯 抚摸 15 乔希 Sta 11 将提供: Chris Strozy 15 Bob Dylan 12 Josh Sta 11 我的错误在strcpy行上: 函数“strncpy”的参数太少| assing'strncpy'的参数1使指针从整数变为不带强制转换的整数C strcpy和char,c,string,strcpy,C,String,Strcpy,我需要写一个代码来实现这一点:你输入名字、名字和分数。仅当年级>=10时,您可以使用反向排序打印学生的姓名和名。 例如: 上下快速移动 迪伦 12 罗伯特 派特 9 克里斯 抚摸 15 乔希 Sta 11 将提供: Chris Strozy 15 Bob Dylan 12 Josh Sta 11 我的错误在strcpy行上: 函数“strncpy”的参数太少| assing'strncpy'的参数1使指针从整数变为不带强制转换的整数 char标签名[N][M]; char tab_prenom[
char标签名[N][M];
char tab_prenom[N][M];
浮动选项卡注释[N];
字符tmp\n,tmp\p;
int i,j,tmp;
对于(i=0;i
您正在尝试复制单个字符中的字符串……此外,strncpy
还有第三个参数(size
)。请尝试使用strcpy
。首先,您使用的是strncpy
,而不是strcpy
strncpy的定义如下
char *strncpy(char *restrict s1, const char *restrict s2, size_t n);
因此,我认为您希望将代码更改为
strncpy(tmp_n,tab_nom[j],sizeof(tmp_n));
否则,您可以使用strcpy(tmp\u n,tab\u nom[j])
而不存在任何编译错误。temp\u n
是单个char
strcpy
接受char*请参见否,第一次使用C…”否则,您可以使用strcpy(tmp\n,tab nom[j]),而不存在任何编译错误。”->但带有警告和分段错误。“好的,如果我尝试使用strcpy,我应该将tmp_n声明为tmp_n[20]?”strncpy(tmp_n,tab_nom[j],sizeof(tmp_n))
这不是strncpy的用法。这是一个错误,我需要strcpy。@Yanis:是的,由于strcpy的定义,您必须将tmp_n声明为字符数组或字符指针。好的,我应该将tmp_n声明为tmp_n[20]?是的。因为您正在将一个字符串复制到另一个字符串而不是char。请尝试使用它。如果没有其他错误,它应该可以工作。您对代码做了哪些其他更改?如果您将char temp\n替换为char temp[SIZE]那么这段代码不应该有任何错误。可能是你在执行这项任务时犯了另一个错误。你能给我你的代码,让我运行并检查它吗?不要粘贴在这里。粘贴到paste.ubuntu.com,粘贴后给我链接。非常欢迎。你应该知道在这里感谢的最好方式是投票:-P
strncpy(tmp_n, tab_nom[j]);
/* ... */
strncpy(tmp_p,tab_prenom[j]);
char *strncpy(char *restrict s1, const char *restrict s2, size_t n);
strncpy(tmp_n,tab_nom[j],sizeof(tmp_n));