注册 登录
编程论坛 C++教室

老是出现内存错误 不知道哪错了

honghong88 发布于 2011-11-17 19:55, 467 次点击
#include <iostream>
using namespace std;
int main()

{void cmp (char [] );
   
    char str[30];
    cout<<"请输入字符串";
cin>>str;
cmp (str  );
}

void cmp (char str [30] )
{char *p, *a[30];
int i =0,j;
while (*str = '\0')
{p=str+1;
if(((*str<='9') && (*str>='0'))&&((*p<='9') && (*p>='0'))                           )
{while((*p<='9') && (*p>='0'))
{p++;}
*p='\0';
a[i]=str;
i++;
str=p;

}
str++;

}

for(j=0;j<i+1;j++)
cout <<a[j]<<endl;
}

输入 一个字符串 ,,内有数字和非数字,,如
asd123wead45sdasd587adasd478ad;
将其中连续的数字作为一个整数 依次放到数组a中,如 123放在 a[1], 45放到  a[2]中  最后请统计这些数
3 回复
#2
honghong882011-11-17 20:05
把 while (*str = '\0' )改成while (*str != '\0' ) 粗心打错字了  还是出现内存错误
#3
honghong882011-11-17 20:41
#include <iostream>
using namespace std;
int main()

{void cmp (char [] );
   
    char str[30];
    cout<<"请输入字符串";
cin>>str;
cmp (str  );
}

void cmp (char str [30] )
{char *p, *a[10] ,b[10][30] ;
int m ;
 for (m=0;m<10;m++)
   a[m]=b[m];

int i =0,j;
while (*str != '\0')
{p=str+1;
if(((*str<='9') && (*str>='0'))&&((*p<='9') && (*p>='0'))                           )
{while((*p<='9') && (*p>='0'))
{p++;}
*p='\0';
a[i]=str;
i++;
str=p;

}
str++;

}

for(j=0;j<i+1;j++)
cout <<a[j]<<endl;
}
 
 不出现内存错误 出现乱码了了郁闷
#4
我菜1192011-11-17 21:51
就你写的这个代码谁爱看,乱七八糟的!
1