webForumDet fria alternativet

vända på ett ord

C/C++

4 svar · 499 visningar · startad av dxm

Medlem sedan feb. 200359 inlägg
Frågan#1

hur kan man göra så att man vänder på ordet. säg att jag skrivet
arne så skrivs det ut enra? något som jag har hört är att man skall använda cin.getline men jag har ingen aning om hur.

Medlem sedan juni 200312 inlägg
#2

Använd,

char \*strrev(char \*)

som finns i string.h
.....

Medlem sedan jan. 20021 122 inlägg
#3

Kan tänka att du vill ha lite exempel på hur man läser in strängen också eftersom du undrade vad cin.getline var

#include <iostream>
#include <string.h>
using namespace std;

int main()
{
char tmp[255]; //Skapa en chararray som kommer innehålla texten
cout<<"Sträng: ";
cin.getline(tmp, 255); //Läs in de första 255 tecknen, eller fram till radbyte, och lagra i tmp
char textrad[*tmp.strlen] = strrev(tmp); //Kommer inte ihåg hur man skapade en chararray av dynamisk storlek, men det är nåt åt det här hållet...
cout << textrad;
}

Tror att detta kommer fungera, har dock ingen kompilator att prova i, och har inte hållit på med C/C++ på ett tag, så inga garantier :)

Medlem sedan maj 20002 993 inlägg
#4

char textrad[strlen(tmp)] = strrev(tmp);

Medlem sedan juli 2002581 inlägg
#5

Inget av de senaste två alternativen är ens i närheten av att fungera. Herregud, om ni nu inte har en aning om svaret så skriv inte.
För att kopiera resultatet till en annan sträng:

char* reverse = new char[strlen(tmp) + 1];
strcpy( reverse, strrev(tmp));

//...

delete[] reverse;

För övrigt så finns det ingen funktion i C++ som heter strrev.

254 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
119 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)