gpt4 book ai didi

c++ - 我的数组的长度是多少?

转载 作者:行者123 更新时间:2023-11-28 02:28:05 25 4
gpt4 key购买 nike

大家好,我在使用 strlen 和数组时遇到了问题,它一直说我的字符串长度只有一个?如果有人能提供帮助,那就太好了,这是我的代码:

#include <iostream>
using namespace std;
#include <cstring>

int main()
{
char word1[20];
int len = strlen(word1);
cout << "enter a word!\n";
cin.get(word1, 20, '\n'); cin.ignore(50,'\n');
cout << len;
}

最佳答案

只是来回阅读评论,更新我的答案,尝试在正在发生的事情背后提供更多直觉。

char word1[20];在您的计算机内存中设置一个位置,该位置最终可以由最多 20 个字符的数据填充。请注意,仅此语句不会“清除”当前存在的任何内容的内存。正如 sfjac 所指出的,这意味着该空间中几乎可以存在任何东西。此空间中的任何内容都不太可能是字符或您的代码可以轻松理解的任何内容。

int len = strlen(word1);创建一个整数并将其设置为等于当前在 word1 中的字符数的值.注意,因为我们没有为word1指定任何内容,您已经计算了该内存空间中发生的任何事情的长度。您已将最大值限制为 20,但在这种情况下,无论其中有什么数据垃圾,长度都是 1。

cout << "enter a word!\n";提示用户输入一个词

cin.get(word1, 20, '\n'); cin.ignore(50,'\n');获取单词,将其存储在word1中.此时,word1现在用实际内容定义。但是 - 您已经定义了变量 len .计算机不知道自动为您重新定义它。它按顺序执行您提供的步骤。

cout << len;打印存储在 len 中的值.因为len在用户输入数据之前创建,len与用户输入的内容完全无关。

希望这能给您一些直觉,帮助您解决这个问题!

关于c++ - 我的数组的长度是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29859261/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com