• 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++

VPS Starter Arubacloud
+1 głos
2,105 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,920 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,750 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 1,053 wizyt
0 głosów
2 odpowiedzi 1,959 wizyt
pytanie zadane 26 sierpnia 2015 w C i C++ przez patryk16 Obywatel (1,080 p.)
0 głosów
1 odpowiedź 202 wizyt
pytanie zadane 24 stycznia 2021 w C i C++ przez muzyk Użytkownik (940 p.)

92,843 zapytań

141,782 odpowiedzi

320,858 komentarzy

62,174 pasjonatów

Motyw:

Akcja Pajacyk

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

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...