输入一个字符串,将其中除了小写字母与数字之外的其它字符依序提取出来,构成一个新的字符串并输出。
将新的字符串逆序存放,并输出。
例:(第1行为输入,其它行为输出)
HUE 2023 University#$%^&
HUE U#$%^&
&^%$#U EUH
main函数或给定程序如下:
int main()
{
char s1[81],s2[81];
void extr(char *p1,char *p2); //提取字符串
void reve(char str[]); //逆序
gets(s1);
extr(s1,s2);
puts(s2);
reve(s2);
puts(s2);
return 0;
}
这个是我的代码
#include<stdio.h>
int main()
{
char s1[81], s2[81];
void extr(char* p1, char* p2); //提取字符串
void reve(char str[]); //逆序
gets(s1);
extr(s1, s2);
puts(s2);
reve(s2);
puts(s2);
return 0;
}
void extr(char* p1, char* p2)
{
int len = strlen(p1)-1;
int i = 0;
for (i = 0; i < len-1; i++)
{
if (*p1 <= 48 || (* p1 >= 57 && * p1 <= 97) || *p1 <= 122)
{
* p2 = * p1;
p2++;
}
p1++;
}
}
void reve(char str[])
{
int len = strlen(str);
int i = 0;
int j = len - 1;
while (i < j)
{
str[i] ^= str[j];
str[j] ^= str[i];
str[i] ^= str[j];
i++;
j--;
}
}
运行结果如下

不知道是哪个位置出了什么问题,求解答