用指针实现两个字符串的交叉c语言
时间: 2023-12-24 16:04:13 浏览: 29
以下是用指针实现两个字符串的交叉的C语言代码:
```c
#include <stdio.h>
#include <string.h>
void swap(char *a, char *b) {
char temp = *a;
*a = *b;
*b = temp;
}
void reverse(char *s) {
int len = strlen(s);
char *p = s;
char *q = s + len - 1;
while (q > p) {
swap(p, q);
p++;
q--; }
}
void cross(char *s1, char *s2) {
int len1 = strlen(s1);
int len2 = strlen(s2);
int len = len1 > len2 ? len1 : len2;
char *p1 = s1;
char *p2 = s2;
char temp[len];
int i = 0;
while (*p1 || *p2) {
if (*p1) {
temp[i++] = *p1;
p1++;
}
if (*p2) {
temp[i++] = *p2;
p2++;
}
}
temp[i] = '\0';
strcpy(s1, temp);
reverse(s2);
}
int main() {
char s1[100], s2[100];
printf("请输入第一个字符串:");
scanf("%s", s1);
printf("请输入第二个字符串:");
scanf("%s", s2);
cross(s1, s2);
printf("交叉后的第一个字符串为:%s\n", s1);
printf("交叉后的第二个字符串为:%s\n", s2);
return 0;
}
```