C中有字符串吗?

Posted

技术标签:

【中文标题】C中有字符串吗?【英文标题】:Is there string in C? 【发布时间】:2020-01-02 06:20:05 【问题描述】:

CCS中有string吗?

我可以使用吗:

string myString = "My String"; // Error

【问题讨论】:

string 不是 C 中的数据类型。标头用于与 strcmp 等函数一起使用 换句话说:1) char *myString = "My String"; char[16] myString = "My String"; 将是 C 的正确语法,2) string.h 为您提供 strcmp()、strlen() 等函数的定义。 Nguyen,在发布答案后,批量更改问题不被视为“犹太教”(因此新问题与原始问题无关,就像您的编辑一样),它无效那些答案。因此,我已将您的更改回滚。由于您没有问题配额,因此接受的过程是只提出一个不同的问题。 既然您声明您不能发布新问题,我已经为您完成了 - ***.com/questions/59589320/… 请回答那里的任何 cmets,让我知道哪个答案最能解决您的问题。 Nguyen,请停止对问题进行大量更改,我已经在上一条评论的链接中为您提出了(完全不相关的)问题。您应该在那里寻找与您的新问题相关的活动。这个被询问、回答和接受。 【参考方案1】:

标准的string.h 头文件没有定义称为string 的数据类型,它提供了用于操作C 样式字符串的函数,这些字符串是以空字符结尾的字符数组。

例如,您可以执行以下操作:

#include <stdio.h>
#include <string.h>
int main(void) 
    char *myName = "paxdiablo";
    printf("Length of '%s' is %zu\n", myName, strlen(myName));
    return 0;

注意该代码中的字符串,它是指向 paxdiablo 字符串文字的指针,不是一些标准未提供的 string 类型。


C++确实提供了std::string 类型,但它位于 C++ string 标头而不是 C string.h 中。无论如何,从他们的web presence 看来,CCS 并没有提供 C++ 编译器,而是专注于 C 市场。

【讨论】:

谢谢您,先生。我可以用另一种相同的string 代替吗? @NguyenVanThanh,您可以将 bstring.sourceforge.net 之类的内容合并到您的代码中,这应该比常规 C 字符串提供更多的功能和安全性。 我修好了,但是有如下问题,你能帮我吗?这个老问题有很多反对意见,让我无法问任何人。非常感谢!

以上是关于C中有字符串吗?的主要内容,如果未能解决你的问题,请参考以下文章

Oracle中有字符串分割函数吗

c++流中有类似 C语言的sprintf函数的函数吗?

C++中有字符串吗?

C++ 中有标准的日期/时间类吗?

Python中有用于生成随机字符串的模块吗? [复制]

c/c++里将以空格隔开的字符放进数组的函数