Tablica, kilka znaków w jednym wyrażeniu

Tablica, kilka znaków w jednym wyrażeniu
ziomek234
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 31
0

Siema. Mam taką linijkę w programie:

Kopiuj
cout<<"Moje pierwsze 3 litery imienia to: "<<name2[0]<<name2[1]<<name2[2]<<"."<<endl;

Chciałbym, żeby 3 znaki z tablicy zastąpić 1 wyrażeniem, czy jakoś tak.
Czyli:
zamiast

Kopiuj
name2[0]<<name2[1]<<name2[2]

dać coś typu

Kopiuj
name2[0-2]

(od 0 do 2)
Jak to zrobić?

  • Rejestracja: dni
  • Ostatnio: dni
0

jeśli ta tablica nie jest łańcuchem znaków to się nie da. W innym wypadku po prostu możesz wypisać całość lub wykorzystać odpowiednią do tego funkcje (lub metodę jeśli to string) ... w żadnym wypadku nie możesz operować na przedziałach tak jak ty chcesz.

byku_guzio
  • Rejestracja: dni
  • Ostatnio: dni
0

Nie da się

ziomek234
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 31
0

Ooo. Znalazłem rozwiązanie:

Kopiuj
name2[3] = '\0';

Wkleiłem to zaraz przed

Kopiuj
cout<<name2<<endl;

Tylko nie wiem, czy to jest jednorazowe czy wielorazowe i jak to odwrócić?!

OG
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 14
1

Jednorazowe? Wielorazowe? Osochozi?

można zrobić na przedziałach ;]

Kopiuj
unsigned int lowerBorder = 0;
unsigned int higherBorder = 3;

cout<< "Moje pierwsze 3 litery imienia to: "
for (unsigned int i = lowerBorder; i < higherBorder; ++i)
{
cout << name2[i];
}
cout << "."<<endl;

Tylko przydałoby się to idiotouodpornić ;]
Można też z tego zrobić funkcję.

  • Rejestracja: dni
  • Ostatnio: dni
0
blee napisał(a)

możesz wypisać całość lub wykorzystać odpowiednią do tego funkcje (lub metodę jeśli to string)

na przykład "substr" z klasy string. Jest również odpowiednik dla napisów z C ale wysil się sam i poszukaj. Nic nie musisz samemu pisać i kombinować jak koń pod górkę to się tyczy również powyższej odpowiedzi.

ziomek234
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 31
0

Teraz całym name2 chyba jest name2[3] a ja chce wiedzieć jak to wróci do całości czyli np.
name2[6]
Tylko tyle, że name2 się podaje w programie i nie wiem czy będzie miało 6 znaków czy więcej, a może mniej... xD

06
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2440
0
Kopiuj
#include <iterator>
#include <algorithm>

...

copy(name2, name2 + 3, ostream_iterator<char>(cout));
ziomek234
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 31
0
Kopiuj
copy(name2, name2 + 3, ostream_iterator<char>(cout));

Gdzie to wlepić i jak tego używać?!

06
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2440
0

Wysil się trochę.

ziomek234
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 31
0

O, dzięki. Działa.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.