分别编写三个函数 //strlen求字符串长度 //strcpy字符串拷贝 //strcat字符串拼接
时间: 2023-08-28 17:08:01 浏览: 53
以下为三个函数的代码实现:
1. strlen函数实现
```c
int strlen(char* str) {
int len = 0;
while (*str != '\0') {
len++;
str++;
}
return len;
}
```
2. strcpy函数实现
```c
void strcpy(char* dest, char* src) {
while (*src != '\0') {
*dest = *src;
dest++;
src++;
}
*dest = '\0';
}
```
3. strcat函数实现
```c
void strcat(char* dest, char* src) {
while (*dest != '\0') {
dest++;
}
while (*src != '\0') {
*dest = *src;
dest++;
src++;
}
*dest = '\0';
}
```
注意:以上代码均为示例代码,仅供参考。实际使用中,需要考虑输入参数的合法性和越界等问题。
相关问题
编写一个实现c语言中字符串的拼接的函数
下面是一个简单的实现:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char* str_concat(char* str1, char* str2) {
int len1 = strlen(str1);
int len2 = strlen(str2);
char* result = (char*)malloc(len1 + len2 + 1); // 分配足够的内存
if (result == NULL) {
printf("Error: Failed to allocate memory for string concatenation!\n");
return NULL;
}
strcpy(result, str1); // 拷贝第一个字符串
strcat(result, str2); // 拼接第二个字符串
return result;
}
int main() {
char str1[] = "Hello, ";
char str2[] = "World!";
char* result = str_concat(str1, str2);
if (result != NULL) {
printf("%s\n", result);
free(result); // 记得释放内存
}
return 0;
}
```
这里我们使用了标准库中的 `strlen`、`strcpy` 和 `strcat` 函数,其中 `strlen` 用于获取字符串长度,`strcpy` 用于拷贝字符串,`strcat` 用于拼接字符串。我们首先计算出两个字符串的长度,然后分配足够的内存用于存储拼接后的结果,再将第一个字符串拷贝到结果中,最后将第二个字符串拼接到结果中。注意,我们需要在结果的末尾加上一个空字符 `\0`,因此我们为 `malloc` 分配的内存大小为 `len1 + len2 + 1`。
c语言编写一个类似于strcat()的字符串连接函数
可以按照下面的代码实现一个类似于strcat()的字符串连接函数:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char *str_concat(char *dest, const char *src)
{
int len_dest = strlen(dest);
int len_src = strlen(src);
char *result = (char *) malloc(len_dest + len_src + 1);
if (result == NULL) {
return NULL;
}
strcpy(result, dest);
strcpy(result + len_dest, src);
return result;
}
int main()
{
char str1[20] = "hello ";
char str2[] = "world!";
char *result = str_concat(str1, str2);
if (result == NULL) {
printf("Error: memory allocation failed.\n");
return 1;
}
printf("The concatenated string is: %s\n", result);
free(result);
return 0;
}
```
在这个函数中,我们首先计算了目标字符串和源字符串的长度,然后使用malloc()函数动态分配足够的内存空间来存储连接后的字符串。接着,我们将目标字符串和源字符串依次复制到新分配的内存空间中,最后返回连接后的字符串的指针。在主函数中,我们调用str_concat()函数连接两个字符串,并在连接成功后打印出连接后的字符串,最后释放分配的内存空间。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)