我正在尝试使一个char变量等于C中的一系列char变量。任何想法我是怎么做的?
示例:
char s1 = "dunno";
char s2 = "what";
char s3;
s3 = s1,s2,s1; //equals dunnowhatdunno
答案 0 :(得分:1)
首先,你不能声明一个多长度的字符,字符只能容纳1个字符,所以你必须使用一个char数组来存储你的值(或C ++中的字符串):
char s1[] = "dunno";
char s2[] = "what";
我们将s3存储为带有14个空插槽的空字符:
char s3[14];
然后,要连接两个字符串,可以使用strcat函数(http://www.cplusplus.com/reference/cstring/strcat/):
strcat(s3,s1);
strcat(s3,s2);
strcat(s3,s1);
这需要s1并将其添加到s3,然后将s2添加到s3,最后再将s1添加到s3。
以下是完整的代码:
#include "stdio.h"
int main(void) {
char s1[] = "dunno";
char s2[] = "what";
char s3[14];
strcat(s3,s1);
strcat(s3,s2);
strcat(s3,s1);
printf(s3);
return 0;
}
所有3个连接的输出结果为
dunnowhatdunno
编辑:正如@lurker所说,首先将s1复制到s3以使用" dunno"开始s3 []会更安全。然后展开s3 []。