c语言实验 4.3 编写自定义函数 mystrcat,实现将字符串 2 连接到字符串 1 后边,部分代码已给出。
时间: 2024-01-22 13:17:30 浏览: 25
以下是自定义函数 `mystrcat` 的实现:
```c
#include <stdio.h>
#include <string.h>
void mystrcat(char *s1, char *s2) {
/* 将 s1 指向字符串 1 的末尾 */
while (*s1 != '\0') {
s1++;
}
/* 将字符串 2 复制到 s1 指向的位置 */
while (*s2 != '\0') {
*s1 = *s2;
s1++;
s2++;
}
/* 将字符串 1 的末尾设置为 '\0' */
*s1 = '\0';
}
int main() {
char s1[100] = "Hello, ";
char s2[] = "world!";
mystrcat(s1, s2);
printf("%s\n", s1); // 输出 "Hello, world!"
return 0;
}
```
在函数中,我们首先将 `s1` 指向字符串 1 的末尾,然后将字符串 2 复制到 `s1` 指向的位置,最后将字符串 1 的末尾设置为 `\0`。这样就完成了两个字符串的连接。注意,这里我们假设 `s1` 的缓冲区足够大,可以容纳两个字符串的长度之和。
相关问题
使用c语言编写程序 使用自定义函数 完成两个字符串的连接
下面是一个使用自定义函数实现字符串连接的 C 语言代码示例:
```c
#include <stdio.h>
#include <string.h>
void mystrcat(char *dest, const char *src) {
while (*dest != '\0') {
dest++;
}
while (*src != '\0') {
*dest = *src;
dest++;
src++;
}
*dest = '\0';
}
int main() {
char str1[50] = "Hello, ";
char str2[] = "world!";
mystrcat(str1, str2);
printf("Result: %s\n", str1);
return 0;
}
```
在上面的代码中,我们定义了一个自定义函数 `mystrcat` 来完成字符串连接操作。该函数接受两个参数:`dest` 和 `src`,分别表示目标字符串和源字符串。函数的实现过程如下:
1. 首先,我们使用一个 `while` 循环定位到目标字符串 `dest` 的末尾,即最后一个非空字符的位置。
2. 然后,我们使用另一个 `while` 循环将源字符串 `src` 中的所有字符逐一拷贝到目标字符串 `dest` 的末尾。
3. 最后,我们在目标字符串 `dest` 的末尾添加一个空字符(`\0`),以表示字符串的结束。
在 `main` 函数中,我们首先定义了两个字符串 `str1` 和 `str2`,并初始化了 `str1`。然后,我们调用自定义函数 `mystrcat` 来将 `str2` 连接到 `str1` 的末尾。最后,我们输出连接后的结果。
运行上面的代码,输出结果应该为:
```
Result: Hello, world!
```
用c语言编写自定义函数完成两个字符串的连接功能,要求自定义函数形参采用指针。
好的,以下是一份用 C 语言编写自定义函数实现字符串连接的代码示例:
```c
#include <stdio.h>
#include <string.h>
void str_cat(char *str1, char *str2)
{
int len1 = strlen(str1);
int len2 = strlen(str2);
int i, j;
for (i = len1, j = 0; j < len2; i++, j++) {
str1[i] = str2[j];
}
str1[i] = '\0';
}
int main()
{
char str1[100] = "Hello, ";
char str2[] = "world!";
str_cat(str1, str2);
printf("%s\n", str1);
return 0;
}
```
在这个代码中,我们定义了一个自定义函数 `str_cat`,该函数接收两个字符串指针作为参数。函数内部首先计算两个字符串的长度,然后使用一个循环将第二个字符串中的字符逐一拷贝到第一个字符串的末尾,并在最后加上一个 NULL 字符来表示字符串的结束。
在 `main` 函数中,我们声明两个字符串变量 `str1` 和 `str2`,并初始化 `str1` 为 `"Hello, "`,`str2` 为 `"world!"`。然后我们调用 `str_cat` 函数将 `str2` 连接到 `str1` 的末尾,最后输出连接后的结果。