---
title: "String to char?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/c-cpp/120647-string-to-char"
topic: "C/C++"
topic_url: "https://www.webforum.nu/amne/c-cpp"
author: "Qimen"
published: "2005-01-20T20:53:36.000Z"
updated: "2005-01-21T18:00:24.000Z"
replies: 7
views: 648
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/120647-string-to-char"
---

# String to char?

## #1 — Qimen, 2005-01-20T20:53Z

Hej,

Går det att omvandla en sträng till char?
Eller hur kan jag annars lösa detta? Plockar ut en rad från en textfil som hamnar i en string varde;. Den strängen vill jag sedan splitta vid varje mellanrum, tänkte använda strtok men då måste ju den vara i char. :)

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

## #2 — spango, 2005-01-20T21:06Z

strtok ska man aldrig använda (står det i manualen), inte ens om man bara skämtar, men för att göra om en string till en char\* använder man [*thestring.c_str()*](http://www.cppreference.com/cppstring/c_str.html)

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

## #3 — Qimen, 2005-01-20T21:07Z

Hur ska man splitta en sträng på bästa sätt då? (sökte och hittade svar av bl.a. dig där det användes strtok ;) ).

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

## #4 — Qimen, 2005-01-20T21:27Z

Den rad jag läser in från textfilen ser ut så här: 

```
1 > 00:00:00:00:00:00 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0
```

Vill dela vid varje mellanslag och smacka in det i en array. :)

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

## #5 — spango, 2005-01-20T21:39Z

> **Qimen skrev:**
>
> (sökte och hittade svar av bl.a. dig där det användes strtok ;) ).

Levde jag som jag lärde skulle jag ha det ännu tristare än jag har det idag ;)
Om man ändå använder C++ är det rätt enkelt att smäcka ihop en själv, här är ett smakprov ut mitt personliga kodbibliotek (måttligt testad, förmodligen buggig, etc):

```
void strsplit(vector<string> &outcome, const string& str, const string& delims){
  int begin = 0, end;
  do {
    end = str.find_first_of(delims, begin);
    if (end == string::npos)
      end = str.length();
    outcome.push_back(str.substr(begin, end - begin));
    begin = str.find_first_not_of(delims, end);
  } while (begin != string::npos);
}
...
vector<string> words;
strsplit(words, "There is no spoon!", " ");
// words = ["There", "is", "no", "spoon!"]
```

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

## #6 — Qimen, 2005-01-20T22:00Z

Behöver man inkludera någon extra fil för den funktionen? Får det inte att fungera (är helt ny på c++ så gör säkert många fel. :) ).

```
1.cpp:12: error: `vector' was not declared in this scope
1.cpp:12: error: `string' was not declared in this scope
1.cpp:12: error: `outcome' was not declared in this scope
```

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

## #7 — spango, 2005-01-20T22:32Z

Japp, vector och string måste inkluderas, och sen måste du using:a std:

```
#include <string>
#include <vector>
using namespace std;
```

**\\r** Såg en vårta i koden, snyggade till (allt för Qimen :f )

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

## #8 — Qimen, 2005-01-21T18:00Z

Tack spango. :D

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

---

Tråden på webben: https://www.webforum.nu/amne/c-cpp/120647-string-to-char
