PDA

Visualizza la versione completa : [C++] conversione da string a int


albgen
15-12-2005, 19:21
come cavolo si fa ?
es,ho una:
string str = "123";
int k;
voglio fare in modo che k abbia il il valore 123.
:ciauz:

Samuele_70
15-12-2005, 19:28
Originariamente inviato da albgen
come cavolo si fa ?
es,ho una:
string str = "123";
int k;
voglio fare in modo che k abbia il il valore 123.
:ciauz:



k=atoi(str);

albgen
15-12-2005, 19:30
grazie... :ciauz:

albgen
15-12-2005, 20:28
visto che sono in tema,l'inverso come si fa ?
ps:itoa(..) non mi funziona

Samuele_70
15-12-2005, 20:44
Originariamente inviato da albgen
visto che sono in tema,l'inverso come si fa ?
ps:itoa(..) non mi funziona

Se correttamente implementata funziona :-)



int number = 12345;
char string[25];

itoa(number, string, 10);
printf("integer = %d string = %s\n", number, string);


Nota dall' help del BCC32 :



/**
* Header File
* stdlib.h
*
* Category Conversion Routines, Math Routines
*
* Syntax :
*
* #include <stdlib.h>
* char *itoa(int value, char *string, int radix);
* wchar_t *_itow(int value, wchar_t *string, int radix);
*
* Description :
*
* Converts an integer to a string.
*
* itoa converts value to a null-terminated string and stores the result in string. With itoa, value is an integer. _itow is the unicode version of the function. It converts an integer to a wide-character string.
*
* radix specifies the base to be used in converting value; it must be between 2 and 36, inclusive. If value is negative and radix is 10, the first character of string is the minus sign (-).
*
* Note: The space allocated for string must be large enough to hold the returned string, including the terminating null character (\0). itoa can return up to 33 bytes.
*
* Return Value
*
* itoa returns a pointer to string.
**/

albgen
15-12-2005, 20:59
#include <stdio.h>
#include <stdlib.h>
libro.cpp:44: error: `itoa' undeclared (first use this function)

uso g++ 3.3

Samuele_70
15-12-2005, 21:17
Originariamente inviato da albgen
#include <stdio.h>
#include <stdlib.h>
libro.cpp:44: error: `itoa' undeclared (first use this function)

uso g++ 3.3

Io ho compilato questo senza problemi :bh:



// Compilabile con BCC32 (v5.5)
// E con MinGW32-GCC-3.4.2 (g++.exe)

#include <stdlib.h>
#include <stdio.h>
#include <conio.h>

int main()
{
int number = 12345;
char string[25];

itoa(number, string, 10);
printf("integer = %d string = %s\n", number, string);

printf("%i", atoi("123") );
getch();
return 0;
}

Forse il tuo non installato correttamente. :master:

albgen
15-12-2005, 21:27
:D il g++ del mingwin non lo stesso del g++ del http://gcc.gnu.org.

ho trovato questa pagina http://www.cplusplus.com/ref/cstdlib/
in fondo c' scritto:
* = not ANSI-C, but supported by most compilers.

probabilmente il gcc non 100% ansi-c

:dh:

Samuele_70
15-12-2005, 22:11
Originariamente inviato da albgen
:D il g++ del mingwin non lo stesso del g++ del http://gcc.gnu.org.

Proprio lo stesso no... Ma in pratica... :)


ho trovato questa pagina http://www.cplusplus.com/ref/cstdlib/
in fondo c' scritto:
* = not ANSI-C, but supported by most compilers.

probabilmente il gcc non 100% ansi-c

:dh:
Che io sappia non esiste ancora un compilatore 100% ansi-c !
Parziale soluzione : Installa il MinGW :unz:

Oppure potresti ripiegare con questo :


char str[10];
int val=123;
sprintf(str, "%d", val);
printf("%s", str);

albgen
15-12-2005, 22:28
il mingw l'ho installato ma il progetto che st facendo, deve compilare con gcc 3.3. ti posso garantire che se provo lo stesso codice con mingw mi vengono furoi un centinaio di errori..invece il viceversa no, cio se ho un codice scritto con ming e lo compilo con gcc allora va tutto bene..non s perch succede questo, ma cosi'.

grazie.
:ciauz:

Loading