输入两个任意的字符串,编写程序实现两个字符串的链接不能使用strcat 函数
时间: 2024-02-18 11:00:20 浏览: 60
好的,我可以帮你编写这样的程序。以下是一个示例代码,可以实现两个字符串的链接操作:
```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` 函数,而是使用了自己编写的代码实现了字符串的链接操作。
相关问题
本题要求编写程序,使用指针方本题要求编写程序,使用指针方式实现两个字符串的连接(不能使用strcat函数),并将连接后的字符串输出。式实现两个字符串的连接(不能使用strcat函数),并将连接后的字符串输出。
好的,这道题要求你使用指针实现两个字符串的连接,不能使用strcat函数。可以按照以下步骤实现:
1. 定义两个字符串数组,分别存储两个字符串。
2. 定义一个新的字符串数组,长度为两个字符串长度之和加1(加1是为了存储字符串结束符'\0')。
3. 使用指针遍历第一个字符串,将其逐一复制到新的字符串数组中。
4. 使用指针遍历第二个字符串,将其逐一复制到新的字符串数组中。
5. 在新的字符串数组最后一个位置添加'\0'。
6. 输出新的字符串数组即为连接后的字符串。
以下是示例代码:
```c++
#include <iostream>
using namespace std;
int main()
{
char str1[20] = "Hello";
char str2[20] = " world!";
int len1 = strlen(str1);
int len2 = strlen(str2);
char* newstr = new char[len1 + len2 + 1];
char* p = newstr;
for (int i = 0; i < len1; i++)
{
*p++ = str1[i];
}
for (int i = 0; i < len2; i++)
{
*p++ = str2[i];
}
*p = '\0';
cout << newstr << endl;
delete[] newstr;
return 0;
}
不使用字符串处理函数strcat()编程实现strcat()的功能,即任意输入两个字符串,然后连接这两个字符串,返回连接后字符串的首地址。c语言程序
下面是一种实现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'字符表示字符串结束。函数最后返回连接后字符串的首地址。
阅读全文