webForumDet fria alternativet

Ta ut varje siffra ur en int

C/C++

5 svar · 444 visningar · startad av greyhound

Medlem sedan maj 20031 472 inlägg
Frågan#1

Hej

Jag skulle vilja ta ut varje siffra ut en int om jag har 423 så vill jag plocka ut 4, 2 och 3.

Finns det ett lätt sätt att göra detta på?

Medlem sedan juni 20034 013 inlägg
#2

itoa

Medlem sedan maj 20031 472 inlägg
#3

tydal skrev:

itoa

Jag har försökt med den men jag får inte ut nått....

int intTmp;
char buffer [30];
itoa (intNumber, buffer, 10);
intTmp = strlen(buffer) - 1;
while (intTmp >= 0) {
  printf("Ska skrivas: %s\n", buffer[intTmp]);
  intTmp--;
}

Den skriver bara ut: Ska skrivas: (null)

Medlem sedan juni 20034 013 inlägg
#4

%s betyder sträng, jag skulle tro att du menar %c som betyder tecken i stället.

Om du inte har en debugger, så testa att skriva ut buffer först så du ser att itoa funkar.

Medlem sedan maj 20031 472 inlägg
#5

Se där, trodde det borde gå med %s också.

Då var det löst, tackar!

Medlem sedan maj 20031 472 inlägg
#6

Dock funkade inte itoa i linux så jag fick ändra lite till:

#include <sstream>

using namespace std;

ostringstream oss; oss << intNumber;  string buffer = oss.str(); oss.str("");
268 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)