C++程序问题,懂指针的进来

来源:百度知道 编辑:UC知道 时间:2024/05/29 13:40:28
输入一个字符串,内有数字和非数字字符,例如:
a345dsaf412...
编程将其中连续的数字作为一个整数,一次存放到一个数组d中,例如:345放在d[0],并统计有多少个整数,并输出。
要求用指针解。
#include<iostream.h>
#define m 100
int main()
{
char str[m],*p1;
int d[m],*p2;
p1=&str[0],p2=&d[0];
cout<<"Please PutIn some words or numbers:"<<endl;
cin>>str;
*p1=str[0];
while(*p1!=NULL)
{
if(*p1<='9'&&*p1>='0')
{
*p2=(int)(*p1-'0');
p1++;
if(*p1=='\0')
cout<<*p2;
while(*p1!=NULL)
{
if(*p1<='9'&&*p1>='0')
*p2=*p2*10+(int)(*p1-'0');
else if(*p1<='9'&&*p1>='0'&&*(p1-1)>='0'&&*(p1-1)<='9')
{
cout<<*p2<<endl;
p2++;
}
}
}
}
return(0);
}
这是我编的程序,可是总达不到目的

你把问题想复杂了,其实很简单:
有什么不明白的给我发消息
#include<iostream.h>
#define m 100
int main()
{
char str[m],*p1;
int d[m],n,count=0;
int flag;
p1=str;
cout<<"Please PutIn some words or numbers:"<<endl;
cin>>str;
while(*p1!=NULL)
{
flag=0;
n=0;
while(*p1<='9'&&*p1>='0')
{
flag=1;
n=n*10+(*p1-'0');
p1++;
}
if(flag) d[count++]=n;
p1++;
}
for(n=0;n<count;n++) cout<<d[n]<<" ";
cout<<"\n Total:"<<count;
return(0);
}

makt

达到目的才怪呢!!!再去仔细看下书吧!!