文字列から数値を抽出して加算
1437 ワード
質問:
文字列操作、文字列を入力し、数字を抽出して加算し、dfd 56 hj 5 hjkk 9 kk 7などの結果を画面に表示します.画面には56+5+9+7=77と表示されます.
さらに最適化し、2番目のバージョン:
文字列操作、文字列を入力し、数字を抽出して加算し、dfd 56 hj 5 hjkk 9 kk 7などの結果を画面に表示します.画面には56+5+9+7=77と表示されます.
#include
#include
int main()
{
char *s,ss[1000];
int n,i,k=0,kk=0;
char save[1000][1000];
int sum=0;
s=ss;
scanf("%s",s);
n=strlen(s);
for(i=0;s[i]!='\0';i++)
{
if((int)(s[i]-'0')>=0&&(int)(s[i]-'0')<=9)
{
save[k][kk++]=s[i];
continue;
}
else
{
k++;
kk=0;
continue;
}
}
for(i=0;i
さらに最適化し、2番目のバージョン:
#include
#include
int main()
{
const int N=1000;
char str[N];
scanf("%s",str);
//ar* str="345ppp56fff4ddd3";
int n=strlen(str);
int t[N];
memset(t,-1,sizeof(t));
int k=0;
int flag=-1;
int temp=0;
int i;
for(i=0;i<=n;i++)
{
if((str[i]>='0')&&(str[i]<='9')){
if(flag==1){temp=temp*10+str[i]-'0';}
else{flag=1;temp=str[i]-'0';}
}
else{
if(flag==1){
t[k]=temp;
k++;
}
flag=0;
}
}
int sum=0;
for(i=0;i