# C 程序：连接两个字符串

> 原文： [https://www.programiz.com/c-programming/examples/concatenate-string](https://www.programiz.com/c-programming/examples/concatenate-string)

#### 在此示例中，您将学习手动连接两个字符串，而无需使用`strcat()`函数。

要理解此示例，您应该了解以下 [C 编程](/c-programming "C tutorial")主题：

*   [C 数组](/c-programming/c-arrays)
*   [C 编程字符串](/c-programming/c-strings)
*   [C `for`循环](/c-programming/c-for-loop)

* * *

如您所知，在 C 编程中连接两个字符串的最佳方法是使用`strcat()`函数。 但是，在此示例中，我们将手动连接两个字符串。

* * *

## 在不使用`strcat()`的情况下连接两个字符串

```c
#include <stdio.h>
int main() {
    char s1[100] = "programming ", s2[] = "is awesome";
    int i, j;

    // length of s1 is stored in i
    for (i = 0; s1[i] != '\0'; ++i) {
        printf("i = %d\n", i);
    }

    // concatenating each character of s2 to s1
    for (j = 0; s2[j] != '\0'; ++j, ++i) {
        s1[i] = s2[j];
    }

    // terminating s1 string
    s1[i] = '\0';

    printf("After concatenation: ");
    puts(s1);

    return 0;
} 
```

**输出**

```c
After concatenation: programming is awesome 
```

在这里，字符串`s1`和`s2`串联在一起，结果存储在`s1`中。

重要的是要注意，`s1`的长度应足以在连接后容纳字符串。 如果没有，您可能会得到意外的输出。