gpt4 book ai didi

c - 将 2 个字符加在一起形成 1 个字符*

转载 作者:行者123 更新时间:2023-11-30 18:27:51 24 4
gpt4 key购买 nike

所以如果我有

char a = 'a';
char b = 'b';
char* combination = a + b;

结果应该在哪里

combination = "ab"

我该怎么做?我 99% 确定“+”运算符在这里不起作用,但我不确定我应该做什么。我是 C 语言新手,很抱歉这个问题是多么微不足道!

编辑** 不使用数组是否可以做到这一点?不使用括号[]的意思

最佳答案

adding 2 chars together to form one char* ... how would I do that?

这是一种直接的方法,因为下面的 C99 使用了复合文字@haccks , @unwind

char a = 'a';
char b = 'b';

// v-------------------v--- compound literal
char* combination1 = (char[]) {a, b, '\0'};

printf("<%s>\n", combination1);

combination1 在 block 结束之前一直有效。

I'm 99% sure that the "+" operator wouldn't work here,

OP 是正确的,+ 不是正确的方法。

<小时/>

is it possible to this without using an array? meaning without using brackets []

这是一个奇怪的限制性要求。

代码可以分配内存然后分配。

char *concat2char(char a, char b) {
char *combination = malloc(3);
if (combination) {
char *s = combination;
*s++ = a;
*s++ = b;
*s = '\0';
}
return combination;
}

// Sample usage
char *combination2 = concat2char('a', 'b');
if (combination2) {
printf("<%s>\n", combination2);
free(combination2); // free memory when done
}
<小时/>

使用 3 成员 struct 看起来像是一个选项,但可移植代码并不依赖于 s3打包

struct {
char a, b, n;
} s3 = {a, b, '\0' };

// Unreliable to form a string, do not use !!
char* combination3 = (char *) &s3;

printf("<%s>\n", combination);

关于c - 将 2 个字符加在一起形成 1 个字符*,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52485320/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com