将结构体变量中的字符串元素赋值为空

有时候我们在定义了一个结构体之后,想将其中的字符串元素赋值为空,如果直接赋值为0或者null,结果是会报错的,下面给出一种方法,仅供学习参考!

int main()
{
        struct Student
        {
            int age;                        

    char name[10]; 
        } ;
        
        struct Student str[2] =
        {
            
            {20, "jack"},
            
            {21, "jake"},
            
        };
        
        /* str[0].name = null;   直接赋值为空,是会报错的 */
       
        strcpy(str[0].name, "");           // 赋值为空
        strcpy(str[0].name, "jim");    // 赋值为空后,重新赋值,也可以直接用此方法直接重新赋值
        printf("%s\n", str[0].name);
        return 0;
}


### C/C++ 结构体数组元素赋值方法 在 C 和 C++ 中,结构体数组可以通过多种方式来初始化和给其成员变量赋值。下面介绍几种常见的方法。 #### 使用直接赋值法 可以直接定义并声明一个结构体类型的数组,在创建的同时为其分配初始值: ```c++ struct Student { int id; char name[20]; }; Student students[] = { {1, "Alice"}, {2, "Bob"} }; ``` 这种方式适用于编译时常量表达式的场景[^1]。 #### 动态赋值 对于运行期间获取的数据,则可以在程序执行过程中逐个为每个字段设置具体数值: ```cpp #include <cstring> // 定义结构体类型 struct Person { int age; char fullName[50]; // 假设名字不会超过49字符加上终止符'\0' }; int main() { const size_t numPeople = 3; // 设定人数大小 struct Person people[numPeople]; // 对单个对象进行动态赋值操作 people[0].age = 28; strcpy(people[0].fullName,"Li Lei"); people[1].age = 27; strcpy(people[1].fullName,"Han Meimei"); } ``` 这里需要注意的是字符串复制应该采用安全的方式以防止缓冲区溢出等问题的发生。 #### 利用指针访问结构体内存地址完成批量赋值 当面对大量数据时,还可以考虑利用循环语句配合指针对整个结构体数组做统一管理: ```cpp for (size_t i = 0 ;i<numPeople;i++){ std::cin >> people[i].age; std::cin.getline(people[i].fullName,sizeof(people[i].fullName)); } ``` 上述代码片段展示了如何读取用户输入到 `Person` 类型的结构体数组中去。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值