Nie ma czegoś takiego jak konwersja z char na float. A raczej jest, ale na pewno nie o to Ci chodzi. strtof?
Zrobiłeś to teraz za pomocą wyrażeń regularnych, prawda? A ja naprawdę chciałem Ci pomóc nauczyć się programowania w C++...
#include <stdio.h> int StringToInt(char* string) { char actChar; int i; // iterator int output = 0; //liczba wyjściowa while((actChar = *(string+i)) != 0) { //pobieramy kolejne znaki ciągu, dopóki nie natrafimy na jego koniec (znak \0) if (actChar < 48 || actChar > 57) return -1; //błąd: ciąg zawiera nie tylko cyfry output *= 10; //mnożymy wyjściową liczbę przez 10 output += actChar - 48; //aby wpisać pobraną przed chwilą cyfrę jedności i++; //zwiększamy iterator } return output; } int main() { char input[20]; scanf("%s",input); return 0; }
#include <stdio.h> int CharToFloat(char* oat) { char actChar; int i; // iterator float output = 0; //liczba wyjściowa while((actChar = *(oat+i)) != 0) { //pobieramy kolejne znaki ciągu, dopóki nie natrafimy na jego koniec (znak \0) if (actChar < 49 || actChar > 57) return -1; //błąd: ciąg zawiera nie tylko cyfry output *= 10; //mnożymy wyjściową liczbę przez 10 output += actChar - 48; //aby wpisać pobraną przed chwilą cyfrę jedności i++; //zwiększamy iterator } return output; } int main() { char oat[255]; scanf("%255s",oat); return 0; }
char exit; //działa: do { //coś } while (exit != 't'); //nie działa: do { //coś } while (exit != 't' || exit != 'T');