首页 > 编程语言 >C/C++BUG: [Error] invalid array assignment

C/C++BUG: [Error] invalid array assignment

时间:2023-02-04 11:26:32浏览次数:36  
标签:20 struct assignment C++ char strcpy 报错 invalid 字符串

在写字符串赋值给结构体成员的时候出现的报错

报错的行,代码表示改变数据BookName,是将数据存储到结构体中,但是这样赋值会报错。

报错

这是结构体的组成,result是指向链表其中一个节点的指针

 1 struct BookInfo
 2 {
 3     char BookName[20];
 4     char WriterName[20];
 5     char ISBN[13];//使用新版 无需检验加权数
 6     int BookNum;//图书数量
 7     int year,month,day;//出版时间
 8     double BookPrice;//价格
 9     char Publisher[20];//出版社名称
10     int PublisherCode[4];//出版社代码
11 };
12 //数据的设定
13 struct Node
14 {
15     struct BookInfo data;
16     struct Node* next;
17 };

分析原因:

不能直接给字符串char[]赋值

解决方法

使用strcpy函数或者memcpy函数

 strcpy()函数:是将一个字符串复制到另一块空间地址中 的函数,‘\0’是停止拷贝的终止条件,同时也会将 '\0' 也复制到目标空间。返回的是目标字符串的首地址 。

char* strcpy(char* destination,const char* source);

1.char* destination---------目标字符串的首地址

2.const char* source------被复制的字符串的首地址

 

标签:20,struct,assignment,C++,char,strcpy,报错,invalid,字符串
From: https://www.cnblogs.com/jszs0013/p/17091116.html

相关文章

  • c++函数
    一,函数基础1.函数一般用一个名字表示,即函数名。返回类型,函数名,参数列表,和函数体构成了函数定义。函数定义的语法形式类型说明符 函数名(含类型说明的形式参数表){ 函数体}......
  • c++中类模板遇到的 不知道怎么解决
    提问:   指定name类型为string填写string的字符串报错啥原因不清楚但报错现实填入的是一个char数组也不知道啥原因解答: 参考代码:template<typenameNameT......
  • C++面试八股文快问快答のSTL篇
    文章目录​​STL篇​​​​vector的底层原理(此题本人踩坑,需重视)​​​​vector中的reserve和resize的区别​​​​vector中的size和capacity的区别​​​​vector中erase方......
  • 【c/c++】isdigit()函数
    isdigit函数isdigit是计算机C(C++)语言中的一个函数,主要用于检查其参数是否为十进制数字字符。函数定义:​​intisdigit(intc)​​​函数说明:​​检查参数是否为十进制......
  • C++
    t[i]=s[j];i++;j++;注意与自增运算符的前缀形式区别,如果是:t[++i]=s[++j];则等价于:i++;j++;t[i]=s[j];贴一段课本上的介绍:1.++i:表示在引用变量i之......
  • 「 C++ 11」std::thread “invalid use of non-static member function“问题处理
    文章目录​​......
  • c++学习3 转义字符
    一“/”和某些字符的结合,产生新的字符就叫转义字符。'\0'==ASCII码值的“0”。'\n'==换行符。'\t'==tab缩进符。'\a'==发出警报。'\r'==回到行首符号。 二八进制......
  • C++ Primer 5th 阅读笔记:前言
    机器效率和编程效率Itsfocus,andthatofitsprogrammingcommunity,haswidenedfromlookingmostlyatmachineefficiencytodevotingmoreattentiontoprogram......
  • C++ 交叉编译技巧
    本文是借鉴的有关C相关的文章,由于C与C++有部分相似,此处用C距离,还没有验证过用C语言写一个小程序,在设计时希望该程序在Windows、Linux平台上都能够运行,所以使用宏来......
  • C/C++ 实现循环队列
    #include<iostream>#include<Windows.h>usingnamespacestd;#defineMAXSIZE6typedefintQElemType;typedefstruct{QElemType*base;//基地址intr......