gpt4 book ai didi

c - 如何将文本添加到 C 中的变量?

转载 作者:行者123 更新时间:2023-12-05 02:32:03 24 4
gpt4 key购买 nike

我目前正在学习 C,遇到了一些问题,很难理解变量和在 C 中向变量添加文本的情况。

我知道 C 不像其他编程语言那样处理字符串和字符。如果我从我的书中正确理解它:我必须先定义一个变量才能使用它,这对我来说没问题。所以,如果我执行这段代码,我希望在其中打印变量 text_1,它就会失败:

#include <stdio.h>

int main()
{
char text_1[];
text_1[] = "Testing";
printf("Test 1 is: %s", text_1);
return(0);
}

但如果我这样做,这是可行的:

#include <stdio.h>

int main()
{
char text_1[] = "Testing";
printf("Test 1 is: %s", text_1);
return(0);
}

在其他一些编程语言中,我可以这样做:将 a 调暗为字符串

a="Testing"
print("Testing 1 is:", a) --> or similar option to print out the variable 'a'.

在 C 中执行此操作的正确方法是什么?

谢谢。

最佳答案

糟糕...如果将 C 语言与 Java、Python 或 Ruby,甚至 Basic 或 JavaScript 进行比较,它是一种相当低级的语言:

  • 它没有文本字符串的概念,只是在其标准库中使用空终止字符数组
  • 数组本身不是一等公民:除了在初始化时,该语言只能处理数组元素而不是整个数组

长话短说,数组的大小只定义一次(在定义时),并且在数组的生命周期内永远不会改变。 char text_1[] = "Testing"; 是一个惯用的初始化:数组的大小设置为文字字符串的字符数 + 1 用于终止 null,所以这里是 8。之后如果您使用 strcpy 复制相关字符,text_1 将能够包含最多 7 个字符 + 1 个以 null 结尾的其他字符串。

回到您的代码,char text_1[]; 声明了一个声明大小为 0 字节的不完整数组。这意味着您不能使用它。两种正确的方法是:

char text_1[] = "Testing";   // idiomatic initialization of a 8 characters array

char text_1[8];              // definition of an uninitialized char array of size 8
strcpy(text_1, "Testing"); // copy a string into the array

不是很性感,但C语言就是这样......

关于c - 如何将文本添加到 C 中的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71373005/

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