#include<cstring>
#include<iostream>
#include<cstdlib>//動態分配記憶體函式的頭檔案和exit(0)等函式的頭檔案。
#include<cmath>
using namespace std;
int main()
{
int printf1(void);
printf1();//顯示程式介紹頭。
cout<<"please input a string:";
char s[1000];
gets(s);//cin>>s;
int i=0,i1=0,i2=0,i3=0,num[100],digit[100];
bool flag=0;
for(i=0;i<=strlen(s);i++)//遍歷字串。strlen()得到的是有效字串長度
{
if(s[i]>='0'&&s[i]<='9')//是數字
{
flag=1;
digit[i1]=s[i]-48;//字串數字字符轉化為數值。
i1++;
}//連續陣列存盤到digit[i1]中且digit[i1]是null。flag=1表示已經找到數字。
else if(flag==1)//不是數字且前一位已經找到數字。
{
int i=0,sum=0,frequency=0;
for(i=i1-1;i>=0;i--)
{
sum+=digit[i]*pow(10,frequency);
i1++;
frequency++;
digit[i]=NULL;//digit初始化。
}//把連續的數字digit[i1]轉換為十進制的數值sum。
num[i3]=sum;
i3++; //有i3個整數,(i3從0起)存盤到了num[i3-1]中。
flag=0;
i1=0;
}
else if(flag==0)
{
continue;
}
}
cout<<"this string include "<<i3<<" th number"<<endl;
cout<<"those are:"<<endl;
for(i=0;i<=i3-1;i++)
{
cout<<"number"<<i+1<<" is:"<<num[i]<<endl;
}
cout<<" ====if you want to exit programmar? please input yes or no.===="<<endl;
char option[4];//c風格字串最好保留一個位置存盤null。當錄入的字串長度大于分配的空間時,系統會自動擴大空間。
while(1)
{
scanf("%s",option);
if(strcmp(option,"yes")==0||strcmp(option,"no")==0)
{
break;
}
else
{
cout<<" ====inputed option mistake!please input right option!===="<<endl;
}
}//保證輸入的選項正確。
switch(strcmp(option,"yes"))
{
case 0:exit(0);break;
default:main();//當都不滿足時case時執行default陳述句。
}
}
int printf1(void)//形參里是void表示無引數。
{
cout<<" ==welcome to this programmar used to depart the math number bettwen the string===="<<endl;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/123351.html
標籤:C++ 語言
