char a
- это один символ, поэтому strlen(a)
недопустим, вам нужно передать указатель на забаву c:
void func(const char* a)
{
cout << strlen(a);
}
int main()
{
struct student
{
char name[64];
};
student student1;
cin >> student1.name;
char* ptr = student1.name;
func(ptr);
return 0;
}
Я также изменил &student1.name[64]
, так как это получит указатель на элемент после последнего элемента в массиве, который вам не нужен.
Поскольку мы используем c ++, мы можем просто использовать std::string
, чтобы сделать ваш код намного проще и безопаснее:
void func(const std::string& a)
{
cout << a.size();
}
int main()
{
struct student
{
std::string name;
};
student student1;
cin >> student1.name;
func(student1.name);
return 0;
}