gpt4 book ai didi

c - 如何将 strcpy() 与数组元素一起使用?

转载 作者:行者123 更新时间:2023-11-30 14:36:55 27 4
gpt4 key购买 nike

我有一个名为 array 的数组,我想复制从某个文件中读取的单词并将其存储到该数组的某个索引处,我该怎么做?

我认为当读取文件时,文件中的所有输入都是“字符串”形式。因此,如果文件中存在数字 100,则其表示为“100”。

我尝试过以下方法:

#define maxlength 10

char array[10];
int i = 0;
char word[maxlength];

strcpy(array[i], word); //error
array[i] = word; //error

我的猜测是因为单词是一个字符数组,它实际上不是一个要复制的字符串。有没有办法可以将 word[] 以字符串格式复制到 array[] 中? IE。数组中的索引 0 = ["hello"] 索引 1 = ["world"] 等等

最佳答案

您对“字符串”概念的理解可能是错误的。

C 中的字符串只不过是一个字符数组,末尾带有 NUL 终止符(字符 '\0')。

你这里有什么:

char array[10];

不是字符串数组,它只是字符数组。如果您想在array[0]中存储整个字符串,那么您必须将数组声明为char数组,像这样:

char array[10][10];

现在,数组 的每个元素都可以容纳最多 9 个字符长的字符串(请记住,最后一个必须是终止符 '\0')。

要复制您的单词,您首先必须确保它是有效的字符串(它应该再次以'\0'结尾),并且确保其长度少于 9 个字符(如果计算终止符则为 10 个字符),因为您声明了 array[10][10]。一旦您知道它是格式正确的字符串,您就可以复制它:

strcpy(array[0], word);

如果你不知道word是否正确地以NUL结尾,或者你不知道它是否太长,那么你可以先尝试用复制所有10个字符strncpy(),然后确保它正确终止,手动在末尾添加 '\0':

strncpy(array[0], word, 10);
array[9] = '\0';

关于c - 如何将 strcpy() 与数组元素一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57751184/

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