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

时间:2016-08-17 15:07:46

标签: c arrays string pointers concatenation

如何在C中添加两个字符串?

看看我到目前为止制作的节目。

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

2 个答案:

答案 0 :(得分:3)

使用标题strcat中声明的标准C函数<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 :(得分:1)

samrat + string会尝试将两个类型为char*的指针加在一起,但结果毫无意义。

使用strcat连接两个字符串:strcat(samrat, string);。不要忘记确保samrat缓冲区足够大以容纳结果。