用c语言指针编程输入2个字符串,将两者连接后的结果输出,不可以调用strcat函数
时间: 2024-05-12 13:20:31 浏览: 20
```c
#include <stdio.h>
int main()
{
char str1[100], str2[100], *p1, *p2;
printf("输入第一个字符串:");
gets(str1);
printf("输入第二个字符串:");
gets(str2);
p1 = str1;
p2 = str2;
while (*p1 != '\0')
{
p1++;
}
while (*p2 != '\0')
{
*p1 = *p2;
p1++;
p2++;
}
*p1 = '\0';
printf("连接后的结果为:%s\n", str1);
return 0;
}
```
相关问题
C语言利用指针实现2个字符串的连接(相当于实现函数strcat的功能)
可以通过指针操作来实现两个字符串的连接,具体代码如下:
```c
#include <stdio.h>
#include <string.h>
void mystrcat(char *s1, char *s2) {
// 将指针移到s1的末尾
while(*s1) {
s1++;
}
// 将s2的内容复制到s1的末尾
while(*s2) {
*s1 = *s2;
s1++;
s2++;
}
// 添加字符串结尾标志
*s1 = '\0';
}
int main() {
char s1[100] = "Hello, ";
char s2[] = "world!";
mystrcat(s1, s2);
printf("%s\n", s1);
return 0;
}
```
运行结果:
```
Hello, world!
```
在上面的代码中,首先定义了一个名为`mystrcat`的函数,该函数接受两个参数,即`s1`和`s2`,分别表示需要连接的两个字符串。然后,通过指针操作将指针移到`s1`的末尾,接着将`s2`的内容复制到`s1`的末尾,并最终添加字符串结尾标志,从而实现了两个字符串的连接。在`main`函数中,调用`mystrcat`函数,并将连接后的字符串输出到屏幕上。
使用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'结尾的。如果不是,可能会导致程序崩溃或产生意外结果。所以,实际应用中还需要对输入进行有效性判断。