Witam.
Mam plik tekstowy z numerami telefonów. Potrzebuję każdy z tych numerów zamienić na liczbę. Nie chce żadnych gotowych funkcji. Chce od podstaw kod, który to zamieni. Jak to zrobić?
Zamiana stringa na int
Rozpoczęty przez M@tix, 12 kwi 2014 15:30
2 odpowiedzi w tym temacie
#1
Napisano 12 kwiecień 2014 - 15:30
#2
Napisano 13 kwiecień 2014 - 08:07
Proste jak drut.
- wczytujesz kolejne numery z pliku
- Dla każdego numeru z osobna:
- najpierw sprawdzasz, czy wczytany numer zawiera TYLKO I WYŁĄCZNIE cyfry 0-9. Każdy inny znak jest zakazany.
- do wcześniej przygotowanej zmiennej typu INT podstawiasz pierwszą cyfrę,a raczej różnicę pomiędzy kodem ASCII pierwszego (w praktyce ostatniego w numerze, czyli trzeba przetwarzać łąńcuch tekstowy od końca). Coś takiego
liczba=Ord(znak[1])-Ord('0')
Potem do końca stringu: mnożysz zmienną liczba przez 10 i dodajesz wartość jak wyżej, zmieniając Ord(znak[i[) - robisz to w pętli.
liczba=liczba*10+Ord(znak[i])-Ord('0')
gdzie i jest długością ciągu znaków
Wyświetlasz otrzymaną cyfrę i 4+ leci.
- wczytujesz kolejne numery z pliku
- Dla każdego numeru z osobna:
- najpierw sprawdzasz, czy wczytany numer zawiera TYLKO I WYŁĄCZNIE cyfry 0-9. Każdy inny znak jest zakazany.
- do wcześniej przygotowanej zmiennej typu INT podstawiasz pierwszą cyfrę,a raczej różnicę pomiędzy kodem ASCII pierwszego (w praktyce ostatniego w numerze, czyli trzeba przetwarzać łąńcuch tekstowy od końca). Coś takiego
liczba=Ord(znak[1])-Ord('0')
Potem do końca stringu: mnożysz zmienną liczba przez 10 i dodajesz wartość jak wyżej, zmieniając Ord(znak[i[) - robisz to w pętli.
liczba=liczba*10+Ord(znak[i])-Ord('0')
gdzie i jest długością ciągu znaków
Wyświetlasz otrzymaną cyfrę i 4+ leci.
AMD Phenom II 955
Pentagram Karakorum HP-120 AlCu + Arctic Cooling AF1225L
4 GB DDR3 1600 MHz
Było Asus Radeon HD 6950 DCU II, jest XFX 7850 z AC Mono - czego się nie robi dla tej ciszy!
SilentiumPC Deus G1 600W
Pentagram Karakorum HP-120 AlCu + Arctic Cooling AF1225L
4 GB DDR3 1600 MHz
Było Asus Radeon HD 6950 DCU II, jest XFX 7850 z AC Mono - czego się nie robi dla tej ciszy!
SilentiumPC Deus G1 600W
#3
Napisano 13 kwiecień 2014 - 08:53
Lub użyć języka troszkę wyższego poziomu niż C, korzystać z wyrażeń regularnych, try-catch, i wysokopoziomowych funkcji operujących na plikach od razu wczytujących całą linię tekstu a nawet funkcji parsujących string na integer. Problemem zwykle jest tylko sposób zapisania tego nru telefonu w pliku (sposób oddzielania, myślniki między częściami i takie tam).
Użytkownicy przeglądający ten temat: 0
0 użytkowników, 0 gości, 0 anonimowych