繁体   English   中英

为结构中的char赋值-c

[英]Assigning values to chars in structs - c

我一直无法让用户将单词输入到结构中。 我正在使用的struct如下

struct class
{
  char class_num[4];
  char *class_name;
}

如果有人可以指出我该怎么做,或者至少指出正确的方向,那将是很好的。 谢谢

什么是“ class_num”?

通常,您必须显式管理字符串内存。 函数strdup()可能会有所帮助。 考虑:

struct class cls;
char buf[256] = {0};
puts("Name?");
fgets(buf, 255, stdin);
cls.class_name = strdup(buf); 
//you need to free "cls.class_name" after its use is over

这将使用户输入最多255个字符的字符串,并将该字符串(的副本)存储在结构实例“ cls”的“ class_name”成员中。

在C中,char只是一种整数类型,不同之处在于它们可以带符号或无符号(默认情况下,int是带符号的)。 因此class_num [i]是一个1字节的整数。 输入的方法有很多,取决于输入的是字符串还是四字节代码或其他内容。 正如乔恩·瓦特(Jon watt)所说,您还必须管理其他字段的内存。 您可能会结合读取或读取来查找scanf或strtod或strtol。 除非您有更复杂的输入(例如数据库)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM