如何在C语言中创建自定义数据类型字符串?

如何在C语言中创建自定义数据类型字符串?,c,C,我想创建一个自定义数据类型字符串。对于该数据类型,我希望使用如下代码: #include <stdio.h> void main(void) { String name = "MD A Barik"; printf("%s", name); } #包括 真空总管(真空) { String name=“MD A Barik”; printf(“%s”,名称); } 如何在C编程语言中实现字符串数据类型 typedef char* String; 或者直接使用ch

我想创建一个自定义数据类型字符串。对于该数据类型,我希望使用如下代码:

#include <stdio.h>

void main(void)
{
    String name = "MD A Barik";
    printf("%s", name);
}
#包括
真空总管(真空)
{
String name=“MD A Barik”;
printf(“%s”,名称);
}
如何在C编程语言中实现字符串数据类型

typedef char* String;
或者直接使用
char*

char* name = "MD A Barik";

您应该注意到,这个代码>字符串的行为与C++的<>代码>:ST::String 非常不同。例如,在C++中,可以添加两个字符串来连接,在C中,你需要使用<代码> STARCAT//COD> < /P> < P>一组方法!

  • 学习C语言多年,足以编写自己的一套复杂的函数和结构(但不是类),这样您就可以创建一些或多或少对您有用的东西,但其他人永远无法使用

  • P>切换到C++
  • 向星星许愿

  • 事实上,正如上面的评论所指出的,C并不支持这一点,而且根本没有办法假装它支持这一点。像上面我的#1这样的努力将是一项巨大的工作,而且完全适得其反


    这是一个完全公平的问题,但您确实需要在这里接受“否”作为答案。

    typedef char*String;使字符串成为字符指针(char*)的同义词。
    typedef const char*String就足够了。(除了指定字符串文字并使用格式为“%s”的
    printf
    )之外,您没有说明是否还有更多要求。您不能这样做。您可以创建别名(如@LilyAB所示)但在别名后面隐藏细节并不总是一个好主意,尤其是指针。添加正确类型的唯一方法是修改编译器本身,但这样它就不再是真正的C编译器了(因为它将编译的语言不符合C规范).
    typedef const char*String;
    请不要这样做。CS50对基本类型的混淆造成了足够的混乱。IMO
    typedef char*String
    是一个非常糟糕的主意。它让人相信,当它只是一个指针时,实际上存在一个
    String
    类型。它在其他方面也不同。例如,
    String=“Hello”;S(0)=“h”;是非法的。正确答案是“您不能”。这个答案隐含错误。只要用户知道这个“代码>字符串类型不相同,实际上与 C++有很大的不同,我相信这个答案是正确的。