不使用库函数,自定义一个函数实现字符串连接的功能,如输入字符串 abcd ,和 efgh ,调用该函数后,该函数返回结果是 abcdefgh 。在 main 函数中测试该函数是否正确。
时间: 2024-12-29 08:32:57 浏览: 6
你可以通过简单的循环逐字符地拼接两个字符串来实现这个功能。下面是一个在 C 语言中使用基本数组操作来完成这个任务的例子:
```c
#include <stdio.h>
#include <string.h> // 不需要这一行,因为我们不使用库函数
// 自定义字符串连接函数
char* custom_concat(char *str1, char *str2) {
int len1 = strlen(str1);
int len2 = strlen(str2);
// 动态分配内存存储拼接后的字符串
char *result = (char*)malloc(len1 + len2 + 1); // 加1是因为需要空间放终止符'\0'
if(result != NULL) {
for(int i = 0; i < len1; i++) {
result[i] = str1[i];
}
for(int j = 0; j < len2; j++) {
result[len1 + j] = str2[j]; // 字符串2的字符插入到字符串1之后
}
result[len1 + len2] = '\0'; // 添加终止符
} else {
printf("Memory allocation failed.\n");
return NULL;
}
return result;
}
int main() {
char str1[] = "abcd";
char str2[] = "efgh";
char *concatenated_str = custom_concat(str1, str2);
if(concatenated_str != NULL) {
printf("Concatenated string: %s\n", concatenated_str);
free(concatenated_str); // 释放动态分配的内存
} else {
printf("Failed to concatenate strings.\n");
}
//
阅读全文