---
title: "Mitt första lilla program."
type: "forum-thread"
url: "https://www.webforum.nu/amne/c-cpp/27979-mitt-första-lilla-program"
topic: "C/C++"
topic_url: "https://www.webforum.nu/amne/c-cpp"
author: "Chavez"
published: "2000-07-08T14:39:00.000Z"
updated: "2000-07-29T20:00:00.000Z"
replies: 16
views: 632
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/27979-mitt-första-lilla-program"
---

# Mitt första lilla program.

## #1 — Chavez, 2000-07-08T14:39Z

Hej på er!
Här kommer jag jag med min första direka C++ fråga (det kommer att bli fler, tro mig ![](http://program.webforum.nu/wf/smile.gif))
Koden nedan tar ju emot ett ord och skickar sedan tillbaka det baklänges. Här är det:
\<font size="1" face="Verdana, Arial, Helvetica, sans-serif"\>Kod:\<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600"\> 
\#include \<iostream\>
\#include \<cstring\>
using namespace std;
const int Arsize = 20;
int main()
{	
	cout \<\< "Skriv ett ord: ";
	char word\[Arsize\] ;
	cin \>\> word;
	for (int i = strlen(word) - 1; i \>= 0; i--)
	cout \<\< word;
	cout \<\< "\\n";
	return 0;

}

Det skapar ju en vektor med plats för 20 tecken men hur gör jag så att programmet automatiskt räknar ut hur många tecken som det finns i strängen och sedan skapar en vektor efter det? Som det är nu så fixar det heller inte mellanslag. Hur fixar man det?

Säkert jätteenkla frågor men som jag sa, mitt första program. Så om någon skulle kunna ta och modifiera koden så att den räknar ut storleken på vektor samt gör så att det fixar mellanslag så vore jag glad.

Ps. Om jag har uttryckt mig klumpig så är det därför att jag inte känner mig så hemma i alla nya C++ termer än ![](http://program.webforum.nu/wf/smile.gif)

Ha det!

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

## #2 — Chavez, 2000-07-08T14:45Z

He he. Raden "cout \<\< word;" i koden samt raden, "Skyll inte på mig, jag hade inte rösträtt (det saknas ett snedstreck så att det inte skall hända igen)" i min signatur skapade vissa problem därav den andra  redigeringen ![](http://program.webforum.nu/wf/smile.gif)

\*Grrr\*, detta var ju jobbigt ![](http://program.webforum.nu/wf/smile.gif)

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

## #3 — bughawk, 2000-07-08T15:02Z

att den inte fixar mellanslag skulle kunna bero på att du använder cin, använd cin.getline() istället
\<font size="1" face="Verdana, Arial, Helvetica, sans-serif"\>Kod:\<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600"\>
cin.getline(word, Arsize);

(Första: charvekorn där den inmatade datan ska läggas, den andra: storleken på charvektorn (för att undvika att minne skrivs över pga för liten vektor...))

Ok, vektor-storleks grejen:
Eftersom du inte vet hur många tecken användaren matar in i förväg så går det inte... det är bara att se till att ha en tillräckligt stor vektor...

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

## #4 — Swey, 2000-07-08T15:11Z

Jag svarade till honom via ICQ. Men nu när du har svarat här så behöver jag kanske inte svara igen här. ![](http://program.webforum.nu/wf/wink.gif)

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

## #5 — Chavez, 2000-07-08T15:15Z

OK, tack för de snabba svaren. Från båda två. Då vet jag att jag kan räkna med detta forumet vid framtida problem ![](http://program.webforum.nu/wf/supergrin.gif)

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

## #6 — PhOrPhEr, 2000-07-08T18:45Z

Uhmmm...

Jag vet inte vad Swey svarade så jag tar mig friheten att säga typ:

För att initiera en array med okänt antal element vid kompilering så använder du en pekare...

Nu ska jag dricka öl.. ![](http://program.webforum.nu/wf/supergrin.gif)

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

## #7 — bughawk, 2000-07-08T19:13Z

Det skulle inte ha fungerat för Chavez kod, så jag besparade alla den utläggningen... ![](http://program.webforum.nu/wf/wink.gif)

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

## #8 — dBug, 2000-07-09T21:26Z

Det finns möjligheter att göra en dynamisk allokering av minnet till inläsning av sträng  tex:

void main()
{
  char \*buffPtr;
  GetString(buffPtr)
}

int GetString(char \*buffPtr)
{
  char \*tmpPtr; int len=1;
  buffPtr=malloc(1);
  while(getch()!=13) {
    len++;
    tmpPtr=malloc(len);
    memcpy(tmpPtr,buffPtr,len);
    free(buffPtr)
    buffPtr=tmpPtr;
  }
  return len;
}

Exemplet kan smidas till med realloc()...

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

## #9 — Swey, 2000-07-09T22:36Z

Kom just på att det finns en maxlängd på kommandoraden och därför är det onödigt att köra med dynamisk minnestilldelning.

\#define BUFFERSIZE 8192 // Max 8 kb
char buffer\[BUFFERSIZE\];

void main()
{
cin.getline( buffer, BUFFERSIZE );
}

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

## #10 — bughawk, 2000-07-09T22:54Z

dBug:

Ganska omständigt... ![](http://program.webforum.nu/wf/hrmpf.gif)
Men det kanske inte gör så mycket... fast jag skulle nog välja att allokera en statisk buffert där... Dessutom brukar man veta hur mycket text man vill ha in... ![](http://program.webforum.nu/wf/wink.gif)

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

## #11 — Chavez, 2000-07-09T23:17Z

Jopp. Jag satte vektorn till 10000, det borde nog räcka ![](http://program.webforum.nu/wf/smile.gif)

Kul med lite fart här. Trodde knappt att det fanns C++ programmerare på wF. En kul överraskning.

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

## #12 — Swey, 2000-07-10T01:12Z

bughawk, brukar man veta hur mycket text man vill ha? ![](http://program.webforum.nu/wf/quest.gif) ![](http://program.webforum.nu/wf/quest.gif)

I alla fall inte jag. Om jag har en inmatning av något slag vet jag ju inte hur stor den ska vara. Det är ju användaren som säger hur lång den är.

\- En som ogillar statiska buffertar

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

## #13 — bughawk, 2000-07-10T07:42Z

Vad matar du in för data i dina program? ![](http://program.webforum.nu/wf/wink.gif)

Själv brukar jag vilja ha en t ex. filnamn eller URI:er eller något annat som det finns en maxgräns på...

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

## #14 — Swey, 2000-07-10T13:19Z

Vad är maxgränsen på URI?

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

## #15 — Muzzafarath, 2000-07-10T16:32Z

Vet inte den officiellt gränsen, men på äldre versioner av Netscape var bufferten typ 8192 bokstäver, skrev man in mer så kunde man krascha Netscape ![](http://program.webforum.nu/wf/smile.gif)

Muzzafarath

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

## #16 — bughawk, 2000-07-10T18:41Z

Finns en konstant definierad... men jag kommer varken ihåg vad den heter eller vad den brukar vara tilldelad... ![](http://program.webforum.nu/wf/frown.gif)

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

## #17 — -pelle-, 2000-07-29T20:00Z

Jag tycker det är bättre att skippa char\* och använda string istället, den är dynamisk och dessutom lättare att använda. Dock går det inte att läsa in en rad (ett antal tecken + newline), om man försöker använda string läser man bara ett ord, från en istream. Då måste man använda getline() och den fungerar inte med string.

/Pelle

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

---

Tråden på webben: https://www.webforum.nu/amne/c-cpp/27979-mitt-första-lilla-program
