我试图让一个char变量等于C中的一个char变量序列任何想法我会怎么做?char等于C中的char变量
例子:
char s1 = "dunno";
char s2 = "what";
char s3;
s3 = s1,s2,s1; //equals dunnowhatdunno
我试图让一个char变量等于C中的一个char变量序列任何想法我会怎么做?char等于C中的char变量
例子:
char s1 = "dunno";
char s2 = "what";
char s3;
s3 = s1,s2,s1; //equals dunnowhatdunno
首先,你不能宣布一个多长度的字符,字符意味着只举行1个字符,所以你必须使用一个字符数组来存储你的价值观(或串在C++):
char s1[] = "dunno";
char s2[] = "what";
我们将S3存储为一个空的焦炭与14个空插槽:
char s3[14];
然后,共同ncatenate两个字符串,你可以使用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 []。
在你使用'strcat(s3,s1)'这个不好之前,你的变量's3'没有被初始化。你需要'strcpy(s3,s1);'开始,然后'strcat(s3,s2);'然后'strcat(s3,s1);'。 – lurker
不,这不是如何在C中工作。字符串声明的语法是无效的,并且不能通过逗号(',')完成串联。你有没有读过任何C教程或书籍? – lurker
char s1 [] =“dunno”; char s2 [] =“什么”; char s3 [99]; strcpy(s3,s1);的strcat(S3,S2);的strcat(S3,S1); //买一本C书! – BobRun