2016-08-17 124 views
-4

如何在C中添加两个字符串?如何在C编程语言中添加两个字符串?

看看我迄今为止制作的程序。

#include <stdio.h> 
int main() 
{ 
    char samrat[10]="*"; 
    char string[1]="*"; 
    samrat=samrat+string; 
} 
+1

你尝试过'strcat()'吗? – Shark

+0

@deamentiaemundi:No;不是真的。 https://www.google.com/search?q=c+add+strings – SLaks

+0

@SLaks研究你自己?甚至问Google?不,*,那*太多了! ;-)但很严肃:对于那些认为每个海报高度流利英文的用户来说,这意味着一个小小的刺激,我对“第三或第四”语言非常认真。成为一个更有耐心的人吧! – deamentiaemundi

回答

3

使用标准的C函数strcat在头<string.h>声明。例如

#include <string.h> 

//... 

strcat(samrat, string); 

另一种方法是动态创建一个新的字符串,它将包含这两个字符串的串联。例如

#include <string.h> 
#include <stdlib.h> 

//... 

char *s = malloc(strlen(samrat) + strlen(string) + 1); 

if (s != NULL) 
{ 
    strcpy(s, samrat); 
    strcat(s, string); 
} 

//... 

free(s); 

至于帐单

samrat=samrat+string; 

然后阵列指示符被转换(除了极少数例外),以指针在表达式他们的第一元件。所以你试图添加两个指针。这个指针操作在C中没有定义,而且数组是不可修改的左值。您不能为数组赋一个表达式。

+1

也许你应该推荐他分配一个等于两个字符串长度的新缓冲区? – Shark

1

samrat + string将尝试将char*类型的两个指针加在一起,结果无意义。使用strcat连接两个字符串:strcat(samrat, string);。不要忘记确保samrat缓冲区足够大以适应结果。