zoukankan      html  css  js  c++  java
  • C语言执行时报错“表达式必须是可修改的左值,无法从“const char [3]”转换为“char [120]” ”,原因:字符串不能直接赋值

    解决该问题的方法:使用strcpy函数进行字符串拷贝
     
    原型声明:char *strcpy(char* dest, const char *src);
    头文件:#include <string.h> 和 #include <stdio.h>
    功能:把从src地址开始且含有NULL结束符的字符串复制到以dest开始的地址空间
    说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。
    返回指向dest的指针
     
     1 // testArray.cpp : 定义控制台应用程序的入口点。
     2 
     3 #include "stdafx.h"
     4 #include "string.h"
     5 
     6 #define MAX_AGE_SIZE 120
     7 #define MAX_NAME_SIZE 100
     8 
     9 typedef enum{//枚举值定义
    10     walking = 1,
    11     running = 2,
    12     swimming = 3,
    13     jumpping = 4,
    14     sleeping = 5
    15 }Hobby;
    16 
    17 typedef enum{
    18     Chinese = 1,
    19     English = 2,
    20     Japanese = 3
    21 }Language;
    22 
    23 typedef struct People{//结构体定义
    24     union{//联合体定义,使用方法和struct类似
    25         struct{
    26             char age[MAX_AGE_SIZE];
    27             char name[MAX_NAME_SIZE];
    28         }Child;
    29         Hobby hobby;
    30         Language language;
    31     }Student;    
    32 }People;
    33 
    34 
    35 int _tmain(int argc, _TCHAR* argv[])
    36 { 
    37     char name1[MAX_NAME_SIZE] = {"test1"};
    38     char name2[MAX_NAME_SIZE] = {"test2"};
    39 
    40     People p[2];
    41     //p[0].Student.Child.age = "10";//报错:表达式必须是可修改的左值(原因:字符串不能直接赋值 )
    42     strcpy(p[0].Student.Child.age,"10");//使用strcpy函数实现字符串拷贝
    43     strcpy(p[0].Student.Child.name,name1);
    44     p[0].Student.hobby = walking;
    45     p[0].Student.language = Chinese;
    46 
    47     strcpy(p[1].Student.Child.age,"12");
    48     strcpy(p[1].Student.Child.name,name2);
    49     p[1].Student.hobby = running;
    50     p[1].Student.language = English;
    51 
    52     printf("Student1's name:%s
    ",p[0].Student.Child.name);
    53     return 0;
    54 }
  • 相关阅读:
    BigDecimal.setScale 处理java小数点
    JS判断用户手机是IOS还是Android
    h5 移动端 监听软键盘弹起、收起
    【java】查重类的实现
    MySQL ORDER BY IF() 条件排序
    版本回退
    Log4j 配置某个类中某个方法的输出日志到指定文件
    简单地实现文章的查重
    simhash算法
    mysql中 for update 使用
  • 原文地址:https://www.cnblogs.com/wanglin2016/p/6041071.html
Copyright © 2011-2022 走看看