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中有字符串吗?的主要内容,如果未能解决你的问题,请参考以下文章