如何在c中连接两个字符?

问题描述

我是c的新手。

当我尝试做

char a = 'h';
Char b = 'j';

Strcat(a,b);

我得到一个错误,因为a和b必须是两个字符串。 那我该怎么办呢?

解决方法

为了完整起见,这里列出了可能的解决方案:

gsamaras(最适合您的情况): char str[] = {a,b,'\0'};

通过数组:

char* string = (char*)malloc(3);
string[0] = 'a';
string[1] = 'b';
string[2] = '\0';

一般而言:

char* str1 = "a";
char* str2 = "b";
size_t str1_len = 2;
size_t str2_len = 2;
char* new_str = (char*)malloc(str1_len - 1 + str2_len);
memcpy(new_str,str1,str1_len - 1);
memcpy(new_str + str1_len,str2,str2_len);
,

strcat()是用于连接字符串的方法。在您的情况下,您有字符,因此您不应使用此方法。

相反,您可以自己创建字符串,例如:

char str[] = {a,'\0'};
,

将这两个字符作为字符串,然后使用strcat()函数。

char a[] = "h";
char b[] = "j";

strcat(a,b);

printf("%s",a);