(4)字符串的连接:输入两个字符串,输出连接后的字符串。要求自定义函数char *strcat(char *s,char *t),将字符串t复制到字符串s的末端,并且返回字符串s的首地址。试编写相应程序。
时间: 2024-02-21 15:02:23 浏览: 86
好的,我知道你想问什么了。下面是我给您的代码实现:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char *strcat(char *s, char *t);
int main() {
char s[100], t[100];
printf("请输入第一个字符串:");
scanf("%s", s);
printf("请输入第二个字符串:");
scanf("%s", t);
printf("连接后的字符串为:%s\n", strcat(s, t));
return 0;
}
char *strcat(char *s, char *t) {
char *p = s;
while (*p)
p++;
while (*p++ = *t++)
;
return s;
}
```
这个程序中,我们自定义了 `strcat` 函数,接收两个参数,分别是要连接的两个字符串。在函数内部,我们使用指针来遍历字符串 `s`,直到遇到字符串的结尾,然后将字符串 `t` 拼接到 `s` 的末尾。最后,返回拼接后的字符串 `s` 的首地址。
在 `main` 函数中,我们输入了两个字符串,然后调用自定义的 `strcat` 函数将两个字符串连接起来,并输出拼接后的字符串。
相关问题
c语言字符串连接:输入两个字符串,输出连接后的字符串。要求自定义函数char *strcat(char *s,char *t),将字符串t复制到字符串s的末端,并且返回字符串s的首地址。
好的,下面是 C 语言实现的代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char *strcat(char *s, char *t)
{
char *p = s + strlen(s);
while (*t != '\0') {
*p++ = *t++;
}
*p = '\0';
return s;
}
int main()
{
char s[100], t[50];
printf("请输入第一个字符串:");
scanf("%s", s);
printf("请输入第二个字符串:");
scanf("%s", t);
strcat(s, t);
printf("连接后的字符串为:%s\n", s);
return 0;
}
```
在这个程序中,我们使用了自定义的 `strcat()` 函数来连接两个字符串。该函数接受两个参数,分别是待连接的字符串 `s` 和要复制到 `s` 末尾的字符串 `t`。函数内部使用指针 `p` 来指向 `s` 的末尾,然后通过循环将 `t` 中的字符逐个复制到 `p` 所指向的位置,最后在 `s` 的末尾添加一个空字符 `\0` 表示字符串结束。最后,函数返回 `s` 的首地址,表示连接完成。在 `main()` 函数中,我们先读入两个字符串,然后通过调用 `strcat()` 函数将它们连接起来,并输出结果。
c语言程序:字符串的连接:输入两个字符串,输出连接后的字符串。要求自定义函数char*strcat(char*s,char *t),将字符串t复制到字符串s的末端 并且返回字符串s的首地址。试编写相应程序。
以下是实现该功能的C语言程序:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char* strcat(char* s, char* t);
int main() {
char str1[100], str2[100], *result;
printf("请输入第一个字符串:");
scanf("%s", str1);
printf("请输入第二个字符串:");
scanf("%s", str2);
result = strcat(str1, str2);
printf("连接后的字符串为:%s\n", result);
return 0;
}
char* strcat(char* s, char* t) {
int len1 = strlen(s);
int len2 = strlen(t);
// 分配足够的空间来存储连接后的字符串
s = (char*)realloc(s, (len1 + len2 + 1) * sizeof(char));
// 将字符串t复制到字符串s的末端
int i;
for (i = 0; i < len2; i++) {
s[len1 + i] = t[i];
}
s[len1 + len2] = '\0'; // 在末尾添加字符串结束符
return s;
}
```
运行程序后,输入两个字符串,程序会将它们连接起来,并输出连接后的字符串。在程序中,自定义了一个函数 strcat,它接受两个字符串作为参数,将字符串 t 复制到字符串 s 的末端,并返回字符串 s 的首地址。需要注意的是,在函数内部需要使用 realloc 函数重新分配内存,以确保字符串 s 能够存储下连接后的字符串。
阅读全文