指针真是不会,听不懂,不理解!

img

img


看不出来错误地方,结果不对,编译没问题。指针有点难啊!急,帮帮忙,谢谢!

cut里基本上没改变str1和str2,strcmp比较没意义。
cut里小数点后遇到0就结束,如果0后面还有数字就会被丢弃了。

#include <stdio.h>
#define N 200

char *cut(char str[])
{
    char *p = str, *q;
    int len = strlen(str) - 1;
    q = p + len;
    while (*p == '0')//去掉前导0
        p++;
    while (*q == '0')//从后往前遍历,去掉末尾0
        q--;
    *(q + 1) = '\0';

    return p;//返回中间数字部分
}

int main()
{
    char str1[N], str2[N];
    char *a, *b;
    gets(str1);
    gets(str2);
    a = cut(str1);
    b = cut(str2);
    puts(a);
    puts(b);

    printf("%d", strcmp(a, b));

    return 0;
}