Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C strcpy和char_C_String_Strcpy - Fatal编程技术网

C strcpy和char

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[

我需要写一个代码来实现这一点:你输入名字、名字和分数。仅当年级>=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[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));