c - 需要创建一个函数来调用另一个函数

标签 c

我需要使用此函数来访问名为“getName”的函数,我不知道如何执行此操作,因为我尝试了几次但没有成功。请帮我一点忙

struct Name {
    char firstName[31];
    char middleInitial[7];
    char lastName[36];
};

struct Contact {

    struct Name name;
    struct Address address;
    struct Numbers number;
};
void getName(struct Name *name);


void getContact(struct Contact *contact);
void getName(struct Name *name)
{
    char Initial;
    printf("Please enter the contact's first name: ");
    scanf("%s" , name->firstName);


}


 void getContact(struct Contact *);
  • 该函数不返回值,但有一个参数,该参数接收指向 联系方式。
  • 此函数的目的是使用指针设置联系人的值 参数变量(设置它指向的联系人)。
  • 使用此函数接收到的指针参数向“get”函数 (getName) 提供适当的联系人成员,以设置联系人的值。

最佳答案

有一个简单的方法可以做到这一点。您将指针传递给要更改的struct 变量。然后获取相应的输入。

struct Contact contact;
...
...
getContact(&contact);

然后在getContact()

void getContact(struct Contact *contact){
    getName(&(contact->name));
    ...
}

getName()

void getName(struct Name *name){
    if( scanf("%30s",name->firstName)!= 1){
        fprintf(stderr, "%s\n","Error in input" );
    }
 }

这里的关键思想是我们将变量的地址传递给函数,然后更改变量以取消引用它。

这里显示了一组基本操作。您可以对其进行扩展以获得更多输入。这个答案提供了执行此操作的基本方法。

关于c - 需要创建一个函数来调用另一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47825146/

相关文章:

c - 带指针的二维数组

c - 为什么我无法在 C 中为我的结构创建新节点? (使用 Netbeans)

c - 需要验证以创建连续数组

c - 在嵌入式系统中存储大整数/值

控制流和循环 : Why the output of the program is 0 and not 000?

c - 表中的最小值和最大值

c - fscanf 不保存行 - C

c++ - 如何在 C++ 中避免 GOTO

c - 如何初始化一个只有 -1 值的数组

c - 如何将 stdout 重定向到 COM 端口