Операции со строками: найти числа в строке - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Здравствуйте! Можете растолковать, как такое провернуть. Например, дана нам строка 12a923rs34. Как мне найти число? Не цифру! Например число 12 или число 923, ну или число 23 или 4. При этом пользуясь библиотеками string.h и stdlib.h.
int n=9,i,k,k1,sum1=0,sum2=0;
char stroka1[n],stroka2[n];
gets(stroka1);
gets(stroka2);
for(i=0;i<n;++i){
    if((stroka1[i]>='0'&&stroka1[i]<='9')&&(stroka2[i]>='0'&&stroka2[i]<='9')) k=stroka1[i]-'0',k1=stroka2[i]-'0';
    else{continue;}
sum1+=k,sum2+=k1;}
printf("%d",sum2-sum1);
Мои тщетные попытки работают только с числами одного порядка, оно и понятно, потому что операции проводятся только с цифрами. В данном примере осуществляется ввод двух строк, поиск в них общего числа, состоящего из 8 символов, включая символы цифр. А у меня осуществляется просто суммирование цифр и подсчёт разности. Добрые люди, подскажите, пожалуйста, как сделать так, чтобы я находил не цифры, а числа.

Решение задачи: «Операции со строками: найти числа в строке»

textual
Листинг программы
s = 0; //сумма ЧИСЕЛ
chislo = 0;
for(i=0; i<n; i++) {
  if (str[i] >='0' && str[i]<='9') {
    chislo = 10*chislo + str[i] - '0';
  }
  else {
      s += chislo;
      chislo = 0;
  }
}

Оцени полезность:

11   голосов , оценка 4.091 из 5
Похожие ответы