如何将char var []附加到char? C

时间:2018-02-02 06:39:25

标签: c

char hi[10] = "bye";
char a = 'a';
strcat(hi, a);

就像上面的例子一样。我怎么用C做这个?是否有一个更普通的字符串我不能让你好吗?

2 个答案:

答案 0 :(得分:3)

achar类型,而strcat期望它都是char *类型的参数。要将char附加到字符数组,您可以执行此操作

int index = strlen(hi);
if(index < sizeof(hi)-1)
    hi[index] = a;

请注意,在此特定情况下,初始值设定项会将hi的前三个元素分别初始化为bye。其余元素将初始化为0。因此,在将每个字符附加到数组后,您不需要处理数组的空终止。但总的来说,你必须照顾好这一点。

int index = strlen(hi);
if(index < sizeof(hi)-1){
    hi[index] = a;
    hi[index+1] = '\0';
}

答案 1 :(得分:1)

strcat(hi, (char[]){a,0});

这会附加a

或者你可以这样做

char s[]={a,0};
strcat(hi,s);

或者只是

   #define MAXLEN 10
   ...
   size_t len = strlen(hi);
   if( len+1 <= MAXLEN-1)
      hi[len]=a,hi[len+1]=0;
   else
     // throw error. 

在您的情况下,hi[len+1]=0不是必需的,因为它已填充\0。同样如Serge所述,你可以使用简单的字符串文字作为strcat函数的第二个参数。

strcat(hi,"a");

这两者之间的细微差别再次由Serge提到,字符串文字是const,但复合文字不是。