String do char x[50]

dział ogólny

String do char x[50]

Nowy postprzez piotr49 » środa, 25 listopada 2009, 19:44

Kod: Zaznacz cały
   char kk[54];
   String gg="resdsf sdfs";
   kk=gg; //??


jak zamienienic string na char [x] ?
Avatar użytkownika
piotr49
Bladawiec
Bladawiec
 
Posty: 7
Dołączył(a): niedziela, 22 listopada 2009, 17:59
Podziękował : 0
Otrzymał podziękowań: 0
System operacyjny: Windows XP Pro SP2
Kompilator: Embarcadero RAD Studio 2010
                  C++ Builder 2010
    NieznanyNieznana

Re: String do char x[50]

Nowy postprzez Cyfrowy Baron » środa, 25 listopada 2009, 20:10

Kod: Zaznacz cały
#include <stdio.h>

char kk[50];
String gg = "resdsf sdfs";
sprintf(kk, "%s", gg.c_str());


Tylko pamiętaj, że jeżeli deklarujesz zmienną o rozmiarze 50 to dłuższy tekst się w niej nie zmieści.

To oczywiście przy założeniu, że używać środowiska C++Builder w wersji nie nowszej niż C++ Builder 2007.

Poczytaj sobie w serwisie Cyfrowy Baron dział: porady -> Łańcuchy znaków.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    NieznanyNieznana

Re: String do char x[50]

Nowy postprzez piotr49 » środa, 25 listopada 2009, 20:49

no wlasnie uzywam RAD 2010 ale juz rozwiazalem problem :P t_str()
Avatar użytkownika
piotr49
Bladawiec
Bladawiec
 
Posty: 7
Dołączył(a): niedziela, 22 listopada 2009, 17:59
Podziękował : 0
Otrzymał podziękowań: 0
System operacyjny: Windows XP Pro SP2
Kompilator: Embarcadero RAD Studio 2010
                  C++ Builder 2010
    NieznanyNieznana

Re: String do char x[50]

Nowy postprzez Cyfrowy Baron » środa, 25 listopada 2009, 21:49

Jako ciekawostkę, która być może kiedyś się przyda podam, że możesz używać funkcji c_str(), ale musisz zadeklarować zamiast typu String, który w C++Builder 2009 i 2010 domyślnie jest traktowany jako UnicodeString, zadeklarować typ AnsiString:

Kod: Zaznacz cały
  #include <stdio.h>

  char kk[50];
  AnsiString gg = "resdsf sdfs";
  sprintf(kk, "%s", gg.c_str());
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    NieznanyNieznana

Re: String do char x[50]

Nowy postprzez polymorphism » środa, 25 listopada 2009, 22:55

:lol: Do kopiowania c-stringów jest funkcja strcpy.
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    NieznanyNieznana

Re: String do char x[50]

Nowy postprzez Cyfrowy Baron » środa, 25 listopada 2009, 23:23

Tak samo strcpy jak i sprintf, różnica polega na tym, ze sprintf pozwala użyć formatowania:

Kod: Zaznacz cały
  char kk[50];
  AnsiString gg = "resdsf sdfs";
  strcpy(kk, gg.c_str());
  Label1->Caption = "Tekst do wyświetlenia: " + (String)kk


Kod: Zaznacz cały
  char kk[50];
  AnsiString gg = "resdsf sdfs";
  sprintf(kk, "Tekst do wyświetlenia: %s", gg.c_str());
  Label1->Caption = (String)kk;


I to Ciebie właśnie tak rozśmieszyło?! :lol: :P :mrgreen:
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    NieznanyNieznana


  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

Powrót do Ogólne problemy z programowaniem

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 6 gości