# C 程序：不使用`strcpy()`复制字符串

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

#### 在此示例中，您将学习不使用`strcpy()`函数即可复制字符串。

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

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

* * *

如您所知，复制字符串的最佳方法是使用`strcpy()`函数。 但是，在此示例中，我们将手动复制字符串，而不使用`strcpy()`函数。

* * *

## 不使用`strcpy()`复制字符串

```c
#include <stdio.h>
int main() {
    char s1[100], s2[100], i;
    printf("Enter string s1: ");
    fgets(s1, sizeof(s1), stdin);

    for (i = 0; s1[i] != '\0'; ++i) {
        s2[i] = s1[i];
    }

    s2[i] = '\0';
    printf("String s2: %s", s2);
    return 0;
} 
```

**输出**

```c
Enter string s1: Hey fellow programmer.
String s2: Hey fellow programmer. 
```

上面的程序将字符串`s1`的内容手动复制到字符串`s2`。