---
title: "Göra om Integer till string!"
type: "forum-thread"
url: "https://www.webforum.nu/amne/c-cpp/76058-göra-om-integer-till-string"
topic: "C/C++"
topic_url: "https://www.webforum.nu/amne/c-cpp"
author: "mangan"
published: "2003-05-06T09:08:13.000Z"
updated: "2003-08-16T14:08:36.000Z"
replies: 8
views: 471
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/c-cpp/76058-göra-om-integer-till-string"
---

# Göra om Integer till string!

## #1 — mangan, 2003-05-06T09:08Z

Hej hopp!

Nu har jag typ letat skitmycket efter ett bra sätt att göra om en integer till string i C++. Jag har hittat ett par förslag men de fungerar inte i datormiljön på skolan. Problemet som jag vill applicera detta på är följande:

f1 e mitt objekt.
jag vill ta f1.year och sätta ihop det med f1.title för att få en "nyckel" till min sort så den sorterar på år/titel. Något sådant här vill jag göra rent tankemässigt:

```
film1 = f1.year + f1.title;
```

och få ngt sådant här i strängen film1:
2001Lord of the rings

Jag har försökt med att använda char\* som jag har gjort malloc på och sen har jag trixat med sstream. sstream funka hemma men i skolan gjorde det inte det, alltså kan jag inte använda det.

Permalänk: https://www.webforum.nu/p/76058

## #2 — Mc Fetto, 2003-05-06T11:13Z

```
 #include <iostream>
#include <sstream>

int main()
{
  int i = 1000;
  std::ostringstream to_str;

  to_str<< i;
  std::cout<< to_str.str() <<std::endl;

  std::cin.get();
}
```

 

Nu ligger strängen i to_str.str() och man kan enkelt konkatenera den med en annan sträng :)

Permalänk: https://www.webforum.nu/p/1038879

## #3 — mangan, 2003-05-08T15:33Z

tack för hjälpen! skrev enligt ditt förslag Mc Fetto och det löste alla problem. gjorde sen om det till en template så jag kunde ta bort 20-30 rader kod.

```
template <class T>
string toString(T& in) {
  ostringstream strang;
  strang << in;
  return strang.str();
}
```

 :D

Permalänk: https://www.webforum.nu/p/1041082

## #4 — Mc Fetto, 2003-05-08T17:21Z

Alltid kul att för en gångs skull hjälpa till!! :D

Permalänk: https://www.webforum.nu/p/1041152

## #5 — Osaou, 2003-08-14T23:08Z

Eller, så kan man gå den hårda vägen, som jag fick göra.  :)
Detta fungerar också alldeles utmärkt, med reservation för att Mc Fettos exempel drar mindre systemresurser då det antagligen arbetar direkt på bit-nivå.

Klassen "Text" emulerar "string", vilken inte mitt gymnasiums kompilatorer hade stöd för. Dess metod content() returnerar en char array vilken innehåller objektets strängvärde (duh, some might say ;)).
Om någon är intresserad kan jag även skicka med hela den klassen i en senare post, säg bara till!

Anyway, här kommer kod med funktioner för att:
1) erhålla antal siffror i ett heltal
2) omvandla strängar till heltal
3) omvandla heltal till strängar

```php
int nrofnum(long number){	// returnerar antal siffror i ett heltal
	int tot_nr = 1;
	while ((double)number/pow(10,tot_nr)>=1)
		tot_nr++;
	return tot_nr;
}
char * nrtostr(long number){	// returnerar en array bestående av char's - ett heltal "omvandlat" till sträng
	Text str;
	char * ret;
	long cur_number, japp_nr, prev_nr = 0, nr_numbers = nrofnum(number), inv_nr = nr_numbers-1;
	ret = new char[nr_numbers+1];
	for (int i=-1; ++i<nr_numbers;){
		japp_nr = (long)((double)number/pow(10,inv_nr));
		cur_number = japp_nr-(prev_nr*10);
		str += "x";
		str[i] = (char)(cur_number+48);
		prev_nr = japp_nr;
		inv_nr--;
	}
	strcpy(ret,str.content());
	return ret;
}
long strtonr(char * str){	// returnerar ett heltal "omvandlat" från en sträng
	long ret;
	for (int incr=0; incr<strlen(str); incr++)
		ret += (long)str[incr];
	return ret;
}
```

Och ja, jag vet att det inte dirket är bästa sättet att utföra detta på. Men, men...

Permalänk: https://www.webforum.nu/p/1138617

## #6 — Alpha II, 2003-08-15T08:25Z

```
char buffer[50];
sprintf(buffer,"%d: %s",atoi(f1.year),f1.title);
```

Tycker detta verkar enklare :)

Permalänk: https://www.webforum.nu/p/1138705

## #7 — Osaou, 2003-08-15T11:40Z

Alpha II, man kanske inte vill skriva ut sträng-talet direkt, utan t.ex. multiplicera det med ett annat tal... ;)

Permalänk: https://www.webforum.nu/p/1138794

## #8 — Alpha II, 2003-08-15T13:38Z

Då är det väl bara att göra det innan man skriver ut det?! :q :o

Permalänk: https://www.webforum.nu/p/1138854

## #9 — Sang-drax, 2003-08-16T14:08Z

mangan, gör om ditt template så att det tar const T& så blir det ännu bättre.

Permalänk: https://www.webforum.nu/p/1139249

---

Tråden på webben: https://www.webforum.nu/amne/c-cpp/76058-göra-om-integer-till-string
