phu*_*ehe 2 c arrays string pointers
我有这样的结构
typedef struct bookStruct
{
char title[80];
char author[80];
} BookType;
Run Code Online (Sandbox Code Playgroud)
我有两个像这样的字符串
char *title = "A Book on C";
char *author = "A. Kelly";
Run Code Online (Sandbox Code Playgroud)
现在我不能创建BookType这样的
BookType book = {title, author};
Run Code Online (Sandbox Code Playgroud)
谁能告诉我有什么问题?我怎样才能做到这一点?
您的问题有两种可能的解决方案.第一个是在构造位置使用字符串文字:
BookType book = { "A book on C", "A. Kelly" };
Run Code Online (Sandbox Code Playgroud)
在这种情况下,编译器会将文字复制到适当的变量.如果您无法在初始化中使用文字,则必须自己复制元素:
BookType book = { 0 }; // 0 initalize
strncpy( book.title, title, sizeof(book.title)-1 );
strncpy( book.author, author, sizeof(book.author)-1 );
Run Code Online (Sandbox Code Playgroud)