Wangx_wang 2023-12-01 10:40 采纳率: 85.7%
浏览 4
已结题

数组指针的问题 求解答

输入一个字符串,将其中除了小写字母与数字之外的其它字符依序提取出来,构成一个新的字符串并输出。
将新的字符串逆序存放,并输出。
例:(第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--;
    }


}

运行结果如下

img


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

  • 写回答

2条回答 默认 最新

  • threenewbee 2023-12-01 10:53
    关注

    char s1[81] = { 0 },s2[81] = { 0 };
    看看

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 12月9日
  • 已采纳回答 12月1日
  • 创建了问题 12月1日