输入两个字符串str1和str2(字符数均小于10),定义两个函数char *uf_strcat(char *str1,char *str2)和int uf_strlen(char *str1),实现连接字符串和计算字符串长度的功能,并输出。
时间: 2024-03-03 18:47:09 浏览: 71
好的,我会根据您的要求进行操作,下面是实现连接字符串和计算字符串长度的代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char *uf_strcat(char *str1, char *str2) {
int len1 = strlen(str1);
int len2 = strlen(str2);
char *result = (char *)malloc(sizeof(char) * (len1 + len2 + 1));
strcpy(result, str1);
strcat(result, str2);
return result;
}
int uf_strlen(char *str) {
int len = strlen(str);
return len;
}
int main() {
char str1[10], str2[10];
printf("请输入两个字符串:\n");
scanf("%s %s", str1, str2);
char *concat = uf_strcat(str1, str2);
printf("连接后的字符串为:%s\n", concat);
printf("连接后的字符串长度为:%d\n", uf_strlen(concat));
free(concat);
return 0;
}
```
在这段代码中,我们使用了标准库函数 `strlen()` 和 `strcpy()` 以及自定义函数 `uf_strlen()` 和 `uf_strcat()` 来实现字符串长度的计算和字符串连接的功能。其中,`uf_strlen()` 函数直接调用了 `strlen()` 函数,返回字符串的长度;而 `uf_strcat()` 函数则是先使用 `strlen()` 函数计算出两个字符串的长度之和,然后使用 `malloc()` 动态分配内存来存储连接后的字符串,最后使用 `strcpy()` 和 `strcat()` 函数将两个字符串拼接起来,返回拼接后的结果。
注意,为了避免内存泄漏,我们需要在使用 `malloc()` 分配内存后,最终使用 `free()` 函数释放掉这段内存。
阅读全文