Witamy na forum PC Format Zapraszamy do REJESTRACJI


Użytkownicy przeglądający ten wątek: 1 gości

Władowanie stringa do tablicy char w C++

#1
Władowanie stringa do tablicy char w C++
Jak stringa władować do tablicy charów?
W Javie fajnie to jest zrobione bo wystarczy .tocharArray() i po sprawie.
Ja znalazłem taką oto metodę : const char*str=str2.c_str();
No i jak wyswietle str[2] a str="Ala" to pokaże mi się te a.
Jednak nie działa ten sposób do tego kodu :
Kod:
Scanner scanner = new Scanner(System.in);
     System.out.println("Podaj wyraz");
     String tekst=scanner.nextLine();
     char[]tablica=new char[tekst.length()];
     tablica=tekst.toCharArray();
     int poczatek=0;
     int koniec=tablica.length-1;
    
     while(poczatek<koniec){
         if(tablica[poczatek]==tablica[koniec]){
             poczatek++;
             koniec--;
           System.out.println(" palindrom");
           break;
         }else{
                  System.out.println("nie palindrom");
                  break;
                   }

Chcę go przepisać do C++ z Javy na ale napotykam problem właśnie tak jak w temacie.
A z tym co ja podałem nie wychodzi, w najlepszym wypadku się odpala ale nic się nie pokazuje. Tak jest dobrze przepisany-tj. wszystko przetłumaczone z Javy na C++.
Prosiłbym o porady, zależy mi aby ten kod działał również w C++. Jest to mój kod odpowiedzialny za sprawdzanie czy podany tekst jest palindromem. Wiem, że dziwny, ważne, że własnyJęzyk
 System operacyjny: windows_seven Przeglądarka: chrome
#2
RE: Władowanie stringa do tablicy char w C++
Ale po co w ogóle kopiować zawartość stringa do tablicy - tak naprawdę obiekt klasy string opakowuje tablicę i można się nim posługiwać tak samo, jak tablicą, korzystając z operatora [] Wesoły
 System operacyjny: linux_ubuntu Przeglądarka: firefox
#3
RE: Władowanie stringa do tablicy char w C++
Dziękuję bardzo. Fajna rzecz ułatwiająca życie.
Powyższy kod wyglądałby wtedy tak?
Średnio działa bo nic nie wyświetla.
Kod:
#include <iostream>
#include <cstdlib>

using namespace std;

int main(){
string tekst;
cout<<"Podaj tekst"<<endl;
cin>>tekst;
int poczatek=tekst[0];
int koniec=tekst[sizeof(tekst)/sizeof(tekst[0])-1];
while(poczatek<koniec){
         if(tekst[poczatek]==tekst[koniec]){
             poczatek++;
             koniec--;
             cout<<"palindrom"<<endl;
         }else{
             cout<<"nie palindrom"<<endl;
         }
}
return 0;
}
 System operacyjny: windows_seven Przeglądarka: chrome
#4
RE: Władowanie stringa do tablicy char w C++
Kod:
tekst.length()
zwraca długość tekstu. Nawet ten kod w Javie nie sprawdza, czy słowo jest palindromem, ponieważ po porównaniu pierwszej i ostatniej litery zawsze opuści pętlę zamiast sprawdzać dalej.
 System operacyjny: linux_ubuntu Przeglądarka: firefox
#5
RE: Władowanie stringa do tablicy char w C++
Ok teraz już w końcu działa ale i tak nie tak jak powinien. W Javie działa również bez względu na spacje a w c++ tylko dla pojedynczego wyrazu tj. zakopane na pokaz w c++ już nie przejdzie. Najgorsze, że nie wiem dla czegoKwaśny

Co do kodu. Nie zgodziłbym się z twoją opinią.
Według mnie kod nie wyjdzie po pierwszym sprawdzeniu z pętli, owszem wyjdzie ale jeśli początkowa litera nie będzie taka sama jak końcowa( widział ktoś palindrom zaczynający się np. od a a kończący na g?). No a dalej jeśli litery są sobie zgodne to brniemy w szukanie dalej a jak nie to wychodzimy z pętli, a od sterowania jest początek++ i koniec--. Także moim zdaniem kod poprawny.
 System operacyjny: windows_seven Przeglądarka: chrome
#6
RE: Władowanie stringa do tablicy char w C++
Instrukcja break spowoduje natychmiastowe opuszczenie pętli (chyba że zamieściłeś inny kod).
Kod:
#include <iostream>
#include <string>
#include <cctype>
using namespace std;

int main()
{
    string tekst = "Ej, u Reja bogaty duren - erudyta go bajeruje.";
    int i, j;
//    cin >> tekst;
    i = 0;
    j = tekst.length() - 1;
    while (i < j)
    {
        if (!isalpha(tekst[i]))
            i++;
        else if (!isalpha(tekst[j]))
            j--;
        else if (tolower(tekst[i]) == tolower(tekst[j]))
        {
            i++;
            j--;
        }
        else
        {
            cout << "To nie jest palindrom." << endl;
            break;
        }
    }
    if (i >= j)
        cout << "To jest palindrom." << endl;
    return 0;
}
 System operacyjny: linux_ubuntu Przeglądarka: firefox
Programy: Polecane / Nowe / Inne



Użytkownicy forum szukali:
nie mogeodpalic tablica goclever

Podobne wątki (Władowanie stringa do tablicy char w C++)
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Java- wypisanie liczb, które nie są podane w tablicy , wypisanie liczb z tablicy all? ccomp 10 16263 16.07.2017, 20:10
Ostatni post: ccomp
  Wyszukiwanie w tablicy soul1648 3 8050 01.04.2017, 14:26
Ostatni post: Ajgor
  [C++] Działanie na tablicy znakowej saba13579 8 7491 21.03.2017, 22:30
Ostatni post: Szachista

Skocz do:


Wybrane wątki (Władowanie stringa do tablicy char w C++)
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Spring framework – jakie strony polecacie do nauki? olek23 5 6648 15.11.2019 15:57
Ostatni post: Alsenas
  Programowanie windy (problem) w C++ mysza2323 2 5630 06.11.2019 23:04
Ostatni post: mysza2323
  Programy w C ~Anonim 1 5931 22.10.2019 17:48
Ostatni post: Szachista
  Książki do nauki C# olek23 14 18334 17.10.2019 13:06
Ostatni post: Ajgor
  Wyświetlanie informacji z bazy danych na stronie www PitPlay 1 7279 16.09.2019 11:18
Ostatni post: Ajgor
  Błąd przy uruchamianiu programu w Java z wiersza poleceń Physicist 3 4424 30.08.2019 14:16
Ostatni post: Physicist
  Python z wiersza poleceń Physicist 15 20060 21.08.2019 20:14
Ostatni post: Physicist
  Transfer plików via FTP Visual Basic FireBytes 3 6938 15.08.2019 07:41
Ostatni post: Szachista
  Menu wysuwane z boku patryk67 1 7156 07.08.2019 12:43
Ostatni post: aht
  Visual Basic Excel l.całkowitą przedstawić w postaci szesnastkowej fugaz 4 9026 18.06.2019 21:36
Ostatni post: fugaz
  Nauka do Olimpiady Informatycznej? piotr0905 1 8541 08.06.2019 16:50
Ostatni post: wlisik
Ściana Prosta gra w Builder C++ Kiranek1 1 8471 31.05.2019 15:20
Ostatni post: Szachista
  Menu (Nie widoczne długie opisy) wanhelsing 5 10550 28.04.2019 19:31
Ostatni post: koneton
  Skrypt usuwający pliki sylwiaa1 2 4358 28.04.2019 15:20
Ostatni post: sylwiaa1
  Środowisko do assemblera Physicist 4 9797 21.04.2019 14:04
Ostatni post: Ajgor