不使用字符串处理函数strcat()编程实现strcat()的功能,即任意输入两个字符串,然后连接这两个字符串,返回连接后字符串的首地址。c语言程序
时间: 2024-03-26 09:35:12 浏览: 15
下面是一种实现strcat()功能的c语言程序,它使用指针操作实现字符串的拼接:
```c
#include <stdio.h>
char* mystrcat(char* dest, const char* src) {
char* p = dest;
while (*p != '\0') {
p++;
}
while (*src != '\0') {
*p++ = *src++;
}
*p = '\0';
return dest;
}
int main() {
char s1[100], s2[100];
printf("请输入第一个字符串:");
scanf("%s", s1);
printf("请输入第二个字符串:");
scanf("%s", s2);
printf("连接后的字符串为:%s\n", mystrcat(s1, s2));
return 0;
}
```
这个程序在输入两个字符串后,使用mystrcat()函数将它们连接起来,并输出连接后的结果。函数mystrcat()的实现方式是:首先将指针p指向dest字符串的末尾,然后通过指针操作将src字符串中的字符逐个拼接到dest字符串的末尾,最后在dest字符串的末尾添加一个'\0'字符表示字符串结束。函数最后返回连接后字符串的首地址。
相关问题
不使用字符串处理函数strcat()编程实现strcat()的功能,即任意输入两个字符串,然后连接这两个字符串,返回连接后字符串的首地址。
可以使用指针来实现字符串连接的功能,具体步骤如下:
1. 定义一个新的字符数组,用于存储连接后的字符串。
2. 使用循环将第一个字符串中的字符逐个复制到新的字符数组中。
3. 使用循环将第二个字符串中的字符逐个复制到新的字符数组中,从第一个字符串的末尾开始复制。
4. 在新的字符数组的末尾添加一个空字符'\',表示字符串的结束。
5. 返回新的字符数组的首地址。
示例代码如下:
```
#include <stdio.h>
char* my_strcat(char* dest, const char* src) {
char* p = dest;
while (*p != '\') {
p++;
}
while (*src != '\') {
*p = *src;
p++;
src++;
}
*p = '\';
return dest;
}
int main() {
char str1[100], str2[100];
printf("请输入第一个字符串:");
scanf("%s", str1);
printf("请输入第二个字符串:");
scanf("%s", str2);
my_strcat(str1, str2);
printf("连接后的字符串为:%s\n", str1);
return ;
}
```
输入两个任意的字符串,编写程序实现两个字符串的链接不能使用strcat 函数
好的,我可以帮你编写这样的程序。以下是一个示例代码,可以实现两个字符串的链接操作:
```c
#include <stdio.h>
int main()
{
char str1[100], str2[100];
int i = 0, j = 0;
printf("请输入第一个字符串:\n");
gets(str1);
printf("请输入第二个字符串:\n");
gets(str2);
// 找到 str1 的末尾
while (str1[i] != '\0') {
i++;
}
// 将 str2 添加到 str1 后面
while (str2[j] != '\0') {
str1[i] = str2[j];
i++;
j++;
}
// 在新字符串末尾添加空字符
str1[i] = '\0';
printf("链接后的字符串为:%s\n", str1);
return 0;
}
```
在这个程序中,我们首先使用 `gets` 函数分别读取两个字符串。然后,我们使用两个 while 循环来将第二个字符串添加到第一个字符串的末尾。最后,我们在新字符串的末尾添加了一个空字符 '\0',以表示字符串的结尾。
需要注意的是,这个程序中并没有使用 `strcat` 函数,而是使用了自己编写的代码实现了字符串的链接操作。