C quote constant返回一个struct

时间:2016-05-26 20:27:57

标签: c

我之前曾问过类似的问题here,但我想我不够具体

在定义常量字符串时,我需要一种方法来返回自定义struct而不是char *,例如:

typedef struct{
  char *value;
  int length;
} string;

string *a;
a = "abc" //Sets a->value to "abc" and length to 3 ("abc" return string instead of char*)

3 个答案:

答案 0 :(得分:2)

如果这是C ++,你可以使用运算符重载并定义一个=函数,但这是C,所以没有运算符重载。但是,只需编写“equals()”或“set()”函数即可完成此操作。

答案 1 :(得分:1)

我发现你可以像这样制作一个等于char的类型:

typedef char string;

string *a = "abc"; 
//Doesn't address length but just have a separate function:
int get_len ( string *in ){
  return strlen(in);
}

来自here

答案 2 :(得分:1)

如果您只是想要默认初始化它,那么您可以更改它的分配方式:

string a = {"abc", 4};

以下是一个实例:http://ideone.com/ERU4yM

如果你需要在变换后更改字符串,那么你需要编写某种形式的set函数。