如何确定字符串长度?

时间:2019-01-22 07:05:45

标签: c

我一直很想知道 “如何确定字符串长度”
并问我的老师。 他告诉你必须假设一个值并分配给srting。
最终,这使我想到了最初的问题:如何将特定长度设置为字符串长度。我曾经考虑过内存分配,即通常给我们最多输入大约20到30个字符,这样浪费了其余部分。
我什至问老师,有没有办法动态地声明数组大小,而他拒绝了。
用户输入字符串后,有什么办法分配内存?

1 个答案:

答案 0 :(得分:1)

  

过去,我们最多只能输入20到30个输入,因此浪费了

是的。分配的数量没有限制,但是如果您知道不需要的数量超过一定数量,则可以分配那么多。通常,对于在现代PC上运行的Hello World而言,您并不需要太多的内存,但是如果您在数据库中存储了具有名称等的数百万条记录,那么考虑一下内存消耗是很好的。

  

我什至问老师,有什么办法可以降低数组大小   动态地,以便他回答“否”,请帮忙

您可以动态分配内存。假设您有这样的代码:

int n = 30;
char *string = malloc(n);
free(string); // any memory allocated with malloc should be freed when it is not used anymore

现在string的大小为30,因为这就是n的设置,但是可以在运行时确定。可能是用户输入的内容。

在C ++中,有一个名为std::string的结构可以自动为您分配动态内存。您可以做类似的事情

std::string s = "Hello";
s += " World";

您甚至不必担心内存分配。如果内部不适合,它将使用摊销的常量运行时间自行重新分配内存。