C++从字符串中找连续数字放入数组。。在线等
/编写一个函数,从一个给定的有数字字符和非数字的字符串中,将其中连续的数字作为一个整数,一次放入一个整型数组中,并统计出这些整型数据的个数.#include<iostream>#include<cstring>using namespace std;void find_number(int n){ //输入 char **A=new char*[n+1]; for(int i=0;i<n;i++) A[i]=new char[30]; for(int i=0;i<n;i++) { cout<<"string"<<i+1<<"(以#结束且长度不超过20)="; cin.getline(A[i],30,'#'); } //从给定字符串中找出数字字符串 char **N=new char*[n*30]; int count=0; for(int i=0;i<n;i++) { for(unsigned int j=0;j<strlen(A[i]);) { if(A[i][j]>='0'&&A[i][j]<='9') { int p=j; for(;A[i][p]>='0'&&A[i][p]<='9';p++) ; N[count]=new char[p-j+1]; for(unsigned int i=0;i<p-j;i++) N[count][i]=A[i][j+i]; count++; j=p; } else j++; } } //把找出的数字字符串转化为数字放入数组 int *Result=new int[count]; for(int i=0;i<count;i++) { Result[i]=0; for(int j=0;N[i][j]!='\0';j++) Result[i]=Result[i]*10+(N[i][j]-'0'); } //输出 cout<<"共有"<<count<<"个数:"<<endl; for(int i=0;i<count;i++) cout<<Result[i]<<"\t"; //善后工作 for(int i=0;i<n+1;i++) delete[] A[i]; delete A; for(int i=0;i<n*30;i++) delete[] N[i]; delete N; delete Result;}int main(){ int n; do { cout<<"请输入待处理字符串的个数:"<<endl; cin>>n; }while(n<1); find_number(n); return 0;}