指针练习统计字符串内含有的整数

#include<stdio.h>
#include<math.h>
#include<string.h>
int main(){
    char *str="A123x456 17960? 302tab5876c12as8888aa";
    CountInt(str);
}

void CountInt(char *str){
    char *p=str;
    int n=0;int num=0;int start=1;
    int *arr=(int *)malloc((sizeof(str)/sizeof(char))*sizeof(int));
    if(arr==NULL){printf("memory error");return;}
    while(*p!=0){
        if(*p>='0'&&*p<='9'){
            if(start==1){
              num+=(*p-'0');
              start=0;
            }else{
                num*=10;
                num+=(*p-'0');
            }


        }
        else{
            if(start==0){
                *(arr+n)=num;
                n++;
                num=0;
                start=1;
            }
        }

           p++;
        }

    if(num!=0){
        *(arr+n)=num;
            n++;
    }

    printf("the result is:\n");

    for(int i=0;i<n;i++)
        printf("%d ",*(arr+i));

    free(arr);
}
posted @ 2024-05-22 14:08  zhongta  阅读(14)  评论(0)    收藏  举报