橘橘橘橘橘外人 2021-03-14 17:42 采纳率: 80%
浏览 15
已采纳

在调试的时候出现了这样的错误,请问是哪个指针出了问题呢

源代码:

#include<stdio.h>
#include<string.h>
void filter(char *p)
{
    char *q=p;
    for(;q!='\0';q++)
    
        if(*q<48||*q>58)
        {
            *p=*q;
            p++;
        }
    
    *p='\0'; 
 } 
 
int main()
{
    char A[100];
    char *p=A;
    printf("输入字符串:");
    gets(A);
    filter(A);
    printf("过滤数之后:%s\n",A);
    printf("字符串的十进制为:");
    for(;*p!='\0';p++)
    printf("%d",*p);
    return 0; 

不知道问题在哪儿,其他同学做出来结果都挺正常的,求大佬指教

  • 写回答

1条回答 默认 最新

  • cpp_learners 2021-03-14 21:12
    关注

    for循环判断条件,应该是*q != '\0'

    for (; *q != '\0'; q++)
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?