c - C语言中如何将两个字符串相加?

标签 c arrays string pointers concatenation

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

看看我到目前为止所做的程序。

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

最佳答案

使用标准C函数strcat在 header <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;

然后数组指示符被转换(极少数异常(exception))为指向表达式中第一个元素的指针。所以你正在尝试添加两个指针。 C 中没有定义指针的这种操作。而且数组是不可修改的左值。您不能使用表达式分配数组。

关于c - C语言中如何将两个字符串相加?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39000320/

相关文章:

c - fread() 由于某种未知原因失败

javascript - 带有定位占位符或等效内容的字符串格式

c - 在 C 中写入文件时不需要的字符

c - go - 使用 cgo 时, `__GI___pthread_mutex_unlock` 占用了大部分执行时间

c# - 在 C# 属性上使用初始化语法

c++ - 如何创建字节数组数组?

java - 使用trim()删除空格,但仍然没有得到预期的输出

c - 合并字符串 C 中的字符排序

c - c中的数组名到底是什么?

javascript - 如何使用push方法或类似方法在javascript中构造一个对象而不是数组对象