c语言用指针复制字符串
时间: 2024-09-20 16:18:04 浏览: 70
在 C 语言中,复制字符串通常涉及到两个步骤:创建一个新的字符数组和将源字符串逐个元素复制到新数组中。由于 C 语言的字符串是以空字符 '\0' 结尾的字符数组,所以我们可以使用指针来完成这个过程。这里是一个简单的示例:
```c
#include <stdio.h>
#include <string.h> // 需要包含 string.h 来使用 strlen 函数
// 函数声明
char* copyString(const char* src);
int main() {
const char* originalStr = "Hello, World!";
char* copiedStr = copyString(originalStr); // 调用函数复制字符串
printf("Copied string: %s\n", copiedStr);
free(copiedStr); // 释放内存
return 0;
}
// 字符串复制函数
char* copyString(const char* src) {
if (src == NULL) { // 检查源字符串是否为空
return NULL;
}
// 计算源字符串长度(包括结束的'\0')
size_t len = strlen(src);
char* dest = (char*)malloc(len + 1); // 分配足够的空间,加一为了存储'\0'
// 使用指针复制字符
for (size_t i = 0; i < len; ++i) {
dest[i] = src[i];
}
dest[len] = '\0'; // 结束处添加'\0'
return dest;
}
```
在这个例子中,`copyString` 函数接收一个指向源字符串的指针,并返回一个新的字符串,该字符串是源字符串的一个副本。注意在使用完复制后的字符串后,记得使用 `free` 函数释放动态分配的内存。
阅读全文