自己编写一个具有strcat函数功能的函数
时间: 2024-05-09 11:19:18 浏览: 35
以下是一个具有strcat函数功能的函数的示例代码:
```C
#include <stdio.h>
#include <string.h>
void my_strcat(char* dest, const char* src) {
int dest_len = strlen(dest);
int src_len = strlen(src);
for (int i = 0; i < src_len; i++) {
dest[dest_len + i] = src[i];
}
dest[dest_len + src_len] = '\0';
}
int main() {
char str1[20] = "Hello";
char str2[] = " world!";
my_strcat(str1, str2);
printf("%s\n", str1);
return 0;
}
```
这个函数接受两个参数:目标字符串和源字符串。它首先计算出目标字符串的长度,然后将源字符串的每个字符复制到目标字符串的结尾处,最后在目标字符串的末尾添加一个空字符。在上面的示例中,我们使用my_strcat函数将" world!"添加到"Hello"之后,最终输出的结果是"Hello world!"。
相关问题
C语言编写一个strcat函数
好的,可以的。C语言中的strcat函数是用来将一个字符串拼接到另一个字符串的末尾的。其原型如下:
```
char *strcat(char *dest, const char *src);
```
其中,dest为目标字符串,src为要拼接的字符串。
实现起来可以使用循环来遍历字符串,通过指针进行操作。下面是一个简单的实现:
```c
#include <stdio.h>
#include <string.h>
char* my_strcat(char* dest, const char* src) {
char* p = dest + strlen(dest); // 找到dest字符串的结尾
while (*src) {
*p++ = *src++; // 将src字符串中的字符一个一个拼接到dest字符串中
}
*p = '\0'; // 字符串结尾要有'\0'
return dest;
}
int main() {
char str1[20] = "hello";
char str2[] = "world";
printf("%s\n",my_strcat(str1,str2));
return 0;
}
```
上述代码中,首先通过`strlen`函数找到dest字符串的结尾,然后通过循环将src字符串中的字符一个一个拼接到dest字符串中,最后字符串结尾处要加上`\0`。
需要注意的是,拼接后的dest字符串长度要足够长,否则会出现越界错误。另外,strcat函数不检查字符串是否越界,因此在实际开发中建议使用更加安全的函数`strncat`。
编写一程序,将两个字符串连接起来,结果取代第一个字符串。\n\n(1)用字符数组,不用strcat函数(即自己写一个具有strcat函数功能的函数);
这个问题是要求编写一个程序,将两个字符串连接起来,并取代第一个字符串。
解法一:使用字符数组,不使用 strcat 函数
可以用字符数组声明两个字符串,然后使用 for 循环逐个将第二个字符串中的字符添加到第一个字符串的末尾,最后加上一个字符串结束符'\0',取代第一个字符串。这个方法需要明确两个字符串的长度,所以可以使用 strlen 函数求出字符串长度。
解法二:使用 strcat 函数
strcat 函数是一个已经实现的字符串拼接函数,需要在调用之前保证第一个字符串有足够的空间容纳第二个字符串。可以使用 strlen 函数求出第一个字符串的长度,然后调用 strcat 函数将第二个字符串拼接到第一个字符串的末尾。最后,第一个字符串就被取代了。
两种方法都可以完成这个问题,具体的实现方法还需要细节上的考虑。