将值分配给结构中的字符 - c

时间:2010-04-21 01:21:37

标签: c struct

我一直无法绕过允许用户在结构中输入单词。 我正在使用的struct位于

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

如果有人能指出我如何做到这一点,或者至少指出我正确的方向,那将是伟大的。 感谢

2 个答案:

答案 0 :(得分:1)

什么是“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”成员中。

答案 1 :(得分:0)

在C chars中只是一种整数,除了它们可以是有符号或无符号的(默认情况下是int)。所以class_num [i]是一个字节的整数。有许多方法可以进行输入,这取决于它是应该是字符串还是四字节代码或其他什么。正如Jon Watt所说,你还必须为另一个领域管理记忆。您可能会查找scanf或strtod或strtol与read或fread结合使用。除非你有像数据库那样更复杂的输入。