我之前曾问过类似的问题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*)
答案 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
函数。