• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Konwersja ciągu liczb w char na int w c++

+1 głos
730 wizyt
pytanie zadane 13 grudnia 2016 w C i C++ przez Kamyyylo Początkujący (460 p.)
Mam takie zadanie :

Napisz funkcję wyznaczającą sumę wartości liczb całkowitych
przechowywanych w pamięci komputera w postaci tekstowej
(np. char* liczby = ”12   -3    64    2     78”; )

Problem w tym ze nie wiem jak przekonwertować to co jest w char na int i potem zsumować. próbowałem czegoś w stylu:

char n="1";

int a;

int a=n-'0';

ale działa tylko na liczba od 0 do 9. Nie wyśle żadnego kodu bo nie mam żadnego pomysłu jak mogę zrobić to zadanie. Słyszałem o czymś takim jak atoi w C ale nie wiem za bardzo jak tego używać.

2 odpowiedzi

0 głosów
odpowiedź 13 grudnia 2016 przez operator Stary wyjadacz (10,980 p.)
wybrane 14 grudnia 2016 przez Kamyyylo
 
Najlepsza

Mam nadzieję, że to wiele wyjaśni.

#include <stdio.h>
#include <string.h>

int main(void) {
	
	char* liczby = "12   -3    64    2     78";
	
	int 
		i = 0,
		sign, 
		number,
		size = strlen( liczby );
	
	// wczytujesz kolejne znaki w tablicy liczby
	while( i < size ){
		
		// pomijasz spacje
		while( liczby[i] == ' ' ) i++;
		
		// sprawdzasz czy występuje znak minusa
		sign = 0;
		if( liczby[i] == '-' ){
			sign = 1;
			i++;
		}
		
		//wczytujesz liczbę
		number = 0;
		while( liczby[i] > 47 ) number = number*10 + liczby[i++] - 48;
		i++;
		
		// sprawdzasz czy wystąpił znak minusa
		if( sign == 1 ){
			number *= -1;
		}
		
		// wypisujesz liczbę
		printf("%d ", number);
		
	}
	
	return 0;
	
}

 

0 głosów
odpowiedź 13 grudnia 2016 przez Fenix Nałogowiec (26,910 p.)
W tym wypadku Twój char to łańcuch znaków, (można w nim się poruszać jak po tablicy) więc może by tak sprawdzić jego odległość, wyszukiwać w nim "spacji" a to co jest między spacjami dodawać do jakieś tablicy, aby na końcu ją zsumować?

Podobne pytania

+1 głos
2 odpowiedzi 325 wizyt
0 głosów
2 odpowiedzi 764 wizyt
pytanie zadane 26 sierpnia 2015 w C i C++ przez patryk16 Obywatel (1,090 p.)
0 głosów
3 odpowiedzi 130 wizyt
pytanie zadane 25 lutego 2016 w C i C++ przez igor1988bb Użytkownik (800 p.)
Porady nie od parady
Odznacz odpowiedź zieloną fajką, jeśli uważasz, że jest ona najlepsza ze wszystkich i umożliwiła ci rozwiązanie problemu.Najlepsza odpowiedź

66,384 zapytań

113,137 odpowiedzi

239,498 komentarzy

46,642 pasjonatów

Przeglądających: 271
Pasjonatów: 5 Gości: 266

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...