Мне нужно сохранить имена пяти учеников в двумерном массиве.Имя каждого студента может быть длиной до 20 символов.Если пришла шестая запись студента, то первая будет заменена, седьмая - второй и т. Д.
Ниже приведена моя программа.Пожалуйста, дайте мне знать, когда я вызываю функцию set (чтобы добавить запись ученика в двумерный массив) для второго ученика, почему моя первая запись ученика заменяется.Однако все равно это не помогает.Пожалуйста, предложите.
#include <stdio.h>
#include<strings.h>
void display(char s[][21]);
void set(char stuName[][21],char* merchantNo)
{
for(int i = 0;i<5;i++)
{
if(stuName[i][21] == '\0')
{
strcpy(stuName[i], merchantNo);
break;
}
}
}
void display(char s[][21])
{
for(int i = 0;i<5;i++)
{
printf("s[%d] is [%s]\n",i,s[i]);
}
}
int main()
{
char stuName[5][21];
printf("sizeof(stuName) is [%d]\n",sizeof(stuName));
memset(stuName,'\0',sizeof(stuName));
display(stuName);
set(stuName,"Student1");
display(stuName);
set(stuName,"Student2");
display(stuName);
return 0;
}
Вывод
s[0] is []
s[1] is []
s[2] is []
s[3] is []
s[4] is []
s[0] is [Student1]
s[1] is []
s[2] is []
s[3] is []
s[4] is []
s[0] is [Student2]
s[1] is []
s[2] is []
s[3] is []
s[4] is []