c语言自己编写一个函数,将字符数组s2中的全部字符连接到字符数组s1中。不用strcat函数
时间: 2024-05-10 18:17:40 浏览: 12
可以按照如下的方法自己编写一个函数,实现将字符数组s2中的全部字符连接到字符数组s1中:
```c
void my_strcat(char s1[], char s2[]) {
int i = 0, j = 0;
// 找到s1的末尾位置
while (s1[i] != '\0') {
i++;
}
// 将s2中的字符逐个复制到s1的末尾
while (s2[j] != '\0') {
s1[i] = s2[j];
i++;
j++;
}
// 将s1的末尾位置设置为'\0'
s1[i] = '\0';
}
```
这个函数的实现方法是先找到s1的末尾位置,然后逐个将s2中的字符复制到s1的末尾,直到复制完全部字符。最后再将s1的末尾位置设置为'\0',表示字符串的结束。
相关问题
C语言编写一个类似于strcat()的字符串连接函数,并在主函数中调用
好的,下面是一个类似于`strcat()`的字符串连接函数的C语言代码:
```c
#include <stdio.h>
#include <string.h>
void mystrcat(char *s1, const char *s2) {
while (*s1) {
s1++;
}
while (*s2) {
*s1++ = *s2++;
}
*s1 = '\0';
}
int main() {
char str1[20] = "Hello, ";
const char *str2 = "world!";
mystrcat(str1, str2);
printf("%s\n", str1);
return 0;
}
```
这个函数的功能与`strcat()`类似,都是将两个字符串连接起来,但是它是自己实现的,不使用库函数。它的参数是一个指向目标字符串的指针`s1`和一个指向源字符串的指针`s2`,它会将`s2`中的字符逐个复制到`s1`的末尾,直到遇到`\0`为止。注意,`s1`必须有足够的空间来容纳`s2`,否则会导致缓冲区溢出。在上面的示例中,我们先声明了一个长度为20的字符数组`str1`,然后将它初始化为`"Hello, "`,再定义一个指向`"world!"`的常量字符串`str2`,最后调用`mystrcat()`函数将两个字符串连接起来,输出结果为`"Hello, world!"`。
使用C语言编写一个程序,将两个字符串连接起来,不要用strcat函数
好的,以下是使用C语言编写的将两个字符串连接起来的程序,不使用strcat函数:
```c
#include <stdio.h>
#include <string.h>
void my_strcat(char *s1, char *s2) {
while (*s1) {
s1++;
}
while (*s2) {
*s1 = *s2;
s1++;
s2++;
}
*s1 = '\0';
}
int main() {
char str1[50], str2[50];
printf("请输入第一个字符串:");
scanf("%s", str1);
printf("请输入第二个字符串:");
scanf("%s", str2);
my_strcat(str1, str2);
printf("连接后的字符串为:%s\n", str1);
return 0;
}
```
在这个程序中,我们定义了一个名为`my_strcat`的函数,它接受两个指向字符数组的指针作为参数,将第二个字符串连接到第一个字符串的末尾。具体实现如下:
- 使用一个while循环找到第一个字符串的末尾。
- 然后使用另一个while循环将第二个字符串的每个字符复制到第一个字符串的末尾。
- 最后将第一个字符串的末尾设置为'\0'。
在主函数中,我们首先从用户那里获取两个字符串,然后调用`my_strcat`函数将它们连接起来,最后输出结果。
需要注意的是,这个程序假设两个字符串都是以'\0'结尾的。如果不是,可能会导致程序崩溃或产生意外结果。所以,实际应用中还需要对输入进行有效性判断。