代码之家  ›  专栏  ›  技术社区  ›  Hanlon

使用数组和strcat将字符追加到字符串中[closed]

  •  -1
  • Hanlon  · 技术社区  · 6 年前

    string0 string1 . 两者都是同一类型的 char * . 我要做的是添加 到年底 字符串1 string0[i] 是一个 char strcat(string1, string0[i]) .

    不过,我有另一个想法:

    char string0i[2] = {string0[i], '\0'};
    strcat(string1, string0i);
    

    但这会导致分割错误。我为什么和怎样才能实现我想要的,即附加第I个元素 ?

    2 回复  |  直到 6 年前
        1
  •  0
  •   PilouPili    6 年前

    试试这个

    /* strncat example */
    #include <stdlib.h>
    #include <stdio.h>
    #include <string.h>
    
    int main ()
    {
      char * string0="whatever";
      char * string1="whoever";
      size_t l = strlen(string1);
      char * str1 = malloc(l+2);
      strcpy (str1,string1);
      int i=3;
      int len = 1;
      strncat (&(str1[l]), &(string0[i]), len);
      //you can also simply do
      //str1[l] = string0[i];
      //str1[l + 1] = 0;
      puts (str1);
      return 0;
    }
    

    分配一个有足够空间的变量 strlen(string1)+2 然后使用将string1复制到较大的变量中 strcpy 你想要的功能是 strncat http://www.cplusplus.com/reference/cstring/strncat/ )它附加有限数量的字符。

    在上面的代码中,结果是

    whoevert
    
        2
  •  2
  •   0___________    6 年前

    要添加字符吗?过度杀戮。

     char *addchar(char *dest, const char *src, size_t nth)
    {
         size_t len = strlen(dest);
         dest[len++] = src[nth];
         dest[len] = 0;
         return dest;
    }