问题描述
我是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);