【问题标题】:How can I pass the data of one array into another array in C?如何将一个数组的数据传递到 C 中的另一个数组?
【发布时间】:2019-11-07 01:31:13
【问题描述】:

我正在尝试创建一个程序,用户可以在其中加载带有字符串的数组,然后需要将位置为 2 和 3 的倍数的字符串添加到新数组中。我不知道该怎么做,因为我不能分配数组。这是我目前所拥有的:

#include <stdio.h> 

int main() 
{
    int i;
    char strings[5][256];
    for (i=0; i<5; i++){
    scanf("%s", strings[i]);
    }
    char strings2[5][256];
    int k = 0;
    {
    for (i=0; i<5; i++)}
        if ((i % 2 == 0) && (i % 3 == 0))
        {

            //Here's where I would do strings2[k] = strings[i] if it were possible
        k=+1;
        }
    }   
}

我能做什么? 编辑:我添加了这些行:

if ((i % 2 == 0) && (i % 3 == 0))
        {
        strcpy(strings2[k], strings[i]);
        k=+1;
        }
        for (i=0; i<5; i++){
         printf("%s\n",strings2[i]);
        }

现在的问题是打印随机符号而不是字母。

【问题讨论】:

  • 你可以使用string.h函数吗?
  • 为什么你的数组是字符串呢?您不能对字符串执行数学运算,因此您必须将它们转换为整数。此外,您正在检查 i 是 2 还是 3 的倍数,而不是 i 的索引。
  • @Nina:这个问题不需要任何数学。
  • 那我很可能没看懂这个问题。
  • 不要使用k=+1。使用k += 1k++k=+1 等价于 k = 1,这不是你想要的。

标签: c arrays multidimensional-array


【解决方案1】:

strcpy(strings2[k], strings[i]);

应该能带你到那里。

http://www.cplusplus.com/reference/cstring/strcpy/

【讨论】:

  • 我什至不知道你是如何理解代码和问题的......
  • @nina: //Here's where I would do strings2[k] = strings[i] if it were possible
  • 这似乎有效,但是当我尝试在 strings2 中打印元素时,它们看起来像奇怪的字符而不是字母。也许我可以编辑帖子以准确显示我添加的内容。
  • 您的新字符串(您复制的字符串)是否以空值结尾?
  • 我如何检查这个?
猜你喜欢
  • 2020-10-02
  • 2019-11-06
  • 2018-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多