Mam problem z zadaniem, mianowicie nie mam pojęcia jak wyszukać te liczby i je wydzielić, żeby potem je zamienić i potem znowu wstawić w to samo miejsce
treść:
Użytkownik wprowadza linię zawierającą pewne słowa i podobne oznaczenia oraz liczby dziesiętne bez znaku, całkowite lub ułamkowe (z przecinkiem oddzielającym część całkowitą od ułamkowej) zakładamy, że takie liczby oddzielone są od innych napisów co najmniej jedną spacją. Przykład:
segment IKEA 250.30.567 wys. 172,5 szerokosc 45 raczka na wysokosci 130
Napisz program, który:
- odczytuje i zapisuje wprowadzoną linię
- wyszukuje w tekście liczby odpowiadające opisanym wyżej kryteriom (linia może zawierać także inne symbole cyfrowe jak kod produktu powyżej); liczby te traktujemy jako wymiary liniowe podane w centymetrach i zamieniamy na cale (1cal=2,54cm)
- program wypisuje analogiczną linię, w której wymiary w centymetrach są zamienione na wymiary w calach zapisane w notacji anglosaskiej (tj. z kropką dziesiętną zamiast przecinka) z dokładnością do 0.1 cala
W powyższym przykładzie linia wypisana powinna mieć postać"
segment IKEA 250.30.567 wys. 67.9 szerokosc 17.7 raczka na wysokosci 54.2
Próbowałem na razie coś takiego ale chyba idę w złą stronę
#define IN 1 /*wewnątrz liczby*/
#define OUT 0 /*poza liczbą*/
int main() {
char napis[100],liczby[100], *n;
int i, state, k;
k = i = state =OUT;
n = gets(napis); /*wczytanie linii tekstu*/
while(napis[i]!='\0')
{
if(napis[i] ==' ')
{
state = OUT;
}
if((state == OUT )&& (napis[i]>='0')&&(napis[i]<='9'))
{
state = IN;
}
if(state == IN)
{
liczby[k] = napis[i];
k++;
}
}
for(int j=0; j<k; j++)
{
printf("%c ",liczby[j]);
}
return 0;
} ```