字符串数组中的元素移位,C

亚当

我想将字符串数组中的每个字符串向左移动一个元素:

   char historyArray[HISTORY_DEPTH][COMMAND_LENGTH];

我下面的两次尝试都没有工作。有人可以向我解释我做错了什么吗?

for (int i = 1; i < HISTORY_DEPTH; i++) {
            strcpy(historyArray[i-1], historyArray[i]);
        }

for (int i = 1; i < HISTORY_DEPTH; i++) {
            historyArray[i-1] = historyArray[i];
        }
萨巴希勒

将historyArray定义为,char *historyArray[HISTORY_DEPTH];将historyArray定义为字符串指针的数组。然后,historyArray [0]指向teststring分配的结果。作为指针数组,您可以正确处理每个字符串指针。然后,您可以分配一个缓冲区指针以用作数组中的元素。并使用strcpy复制到该缓冲区。

char *historyArray[HISTORY_DEPTH];
// put initialization code here
for (int i = 1; i < HISTORY_DEPTH; i++) {
    historyArray[i-1] = historyArray[i];
}
historyArray[HISTORY_DEPTH-1] = NULL; //empty the last element pointer

现在,这会将指针移到数组的上一个元素中。

请注意,historyArray [0]的原始内容现在已丢失,如果使用malloc创建它,则将导致内存泄漏。结果,它应该已经free()应用了它。如果它是一个固定缓冲区,不需要释放,那么您不必担心它。

char historyArray[HISTORY_DEPTH][MAX_SIZE];
for (int i = 1; i < HISTORY_DEPTH; i++) {
    // Or use the memset with strlen(size+1)
    // to ensure that the ending '\0' is also copied
    strcpy(historyArray[i-1], historyArray[i]);
}
historyArray[HISTORY_DEPTH-1][0] = '\0'; // make the last an empty string

第二个字符串的strcpy会将historyArray指向的每个字符串的内容复制到前一个元素指向的缓冲区中,而无需移动指针本身。假定每个缓冲区足够大以容纳字符串。除非您输入空字符串,否则最后一个指针将继续保持与以前相同的数据。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

字符串中的元素移位

来自分类Dev

javascript中字符串的数组取消移位

来自分类Dev

在字符串C#中查找数组元素

来自分类Dev

C#计算字符串数组中的每个元素

来自分类Dev

jQuery数组元素中的字符串

来自分类Dev

jQuery数组元素中的字符串

来自分类Dev

字符串中的原位移位

来自分类Dev

C程序-数组中的元素移位

来自分类Dev

数组元素是C语言中字符串数组中的变量

来自分类Dev

如何获取数组中字符串元素的字符数?[C++]

来自分类Dev

在包含字符串的字符数组中查找元素

来自分类Dev

在包含字符串的字符数组中查找元素

来自分类Dev

C ++中的sizeof字符串数组

来自分类Dev

c中的字符串数组声明

来自分类Dev

在C中创建字符串数组

来自分类Dev

C ++中的全局字符串数组

来自分类Dev

遍历c中的字符串数组

来自分类Dev

C ++中的sizeof字符串数组

来自分类Dev

在C中处理字符串数组

来自分类Dev

C ++数组中字符串的长度

来自分类Dev

c中的数组和字符串

来自分类Dev

从 C 中的字符串数组打印

来自分类Dev

字符串中的 C++ 数组

来自分类Dev

如何从C#中的字符串数组中获取最后三个元素

来自分类Dev

将元素追加到C中的字符串数组中

来自分类Dev

从PHP中的字符串数组中获取HTML元素

来自分类Dev

C#使用转义符\隔离字符串中的数组元素

来自分类Dev

如何基于C#中字符串中元素的出现对数组进行排序?

来自分类Dev

如何将特定字符串与C中数组的所有元素进行比较?