【问题标题】:Copy the adress of array B to an index in array A将数组 B 的地址复制到数组 A 中的索引
【发布时间】:2020-03-10 17:08:49
【问题描述】:

快速...我想将数组“B”的地址复制到数组“A”中的索引,例如“strcat”:

char *strcatme (char s1[] ,char s2[]){

    int i=0;

    while (s1[i]!='\0') i++;

    s1[i] = &s2;

    return s1;
}

但它不起作用,新手有什么建议吗? ;)

【问题讨论】:

  • 地址不是数据。
  • 这没有意义。 s1 的元素是字符,而不是指针。
  • 当您说“strcat”时,您的意思是要将字符串从 s2 复制到 s1,从 s1[i] 开始?您需要另一个循环来逐个字符地复制它,包括 \0 终止符。
  • 如果您正在寻找将s2 的内容复制到s1 的快捷方式,那么没有。这些不是链表,它们是独立的内存块。
  • 你可以使用现有的函数来做到这一点,例如strcpy 或 memcpy,但由于您正在编写自己的 strcat,我猜您不想使用库函数。

标签: c arrays gcc strcat


【解决方案1】:

问题是您需要复制多个字符。多少?您需要第二个循环,在s2 末尾找到\0

免费提示:如果您不仅复制字符,还复制最后一个 \0s2s1,那么 s1 将保持零终止。

免费提示 2:确保也使用空字符串对其进行测试。连接空字符串应该保持原来的不变。

【讨论】:

  • 我试图在不逐个字符的情况下进行连接......我想我的问题已经解决了,我不能......你的时间 m8
  • @M0b1os:正如 cmets 所指出的,您可以逐个字符地进行操作,或者让 strcat 为您执行此操作。有人必须这样做,这是从复制多个字符的期望最终结果得出的。
猜你喜欢
  • 1970-01-01
  • 2021-12-09
  • 1970-01-01
  • 2017-09-29
  • 1970-01-01
  • 1970-01-01
  • 2023-01-27
  • 2019-01-27
  • 1970-01-01
相关资源
最近更新 更多