Pagini: [1]   În jos
  Imprimă  
Ajutor Subiect: despre stringuri  (Citit de 4435 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
malex
Client obisnuit
**

Karma: 6
Deconectat Deconectat

Mesaje: 53



Vezi Profilul
« : Decembrie 14, 2005, 15:20:31 »

Am si eu o problema veche cu lucrul pe stringuri. In C++ mi se pare ca sistemul de lucru nu este tocmai accesibil, tot timpul prind cate o eroare cand fac niste operatii mai complexe, astfel de fiecare data recurg sa fac problemele pe baza de caractere in pascal. Problema aici este ca limita unui string este 255.

Cum pot face sa maresc aceasta limita?

Daca compilatorul celor care evalueaza problema, am obs ca deobicei e free pascal pe linux, are memorie 1 mega inseamna ca stringul o sa fie cat de lung trebuie? (adica 10000 in cazul de fata) . Am declarat (s:string) simplu .

Astept raspuns, multumesc.
Memorat

Programarea e frumoasa daca o inveti logic..
cristi8
Vizitator
« Răspunde #1 : Decembrie 14, 2005, 15:29:45 »

eu nu stiu Pascal, dar te anunt ca si in C/C++ poti face "pe baza de caractere".
Cod:

char s[LUNGIME_MAXIMA+1];
int len;
printf("Introduceti un cuvant: ");
scanf("%s", s);
printf("Primele 2 caractere: %c%c", s[0], s[1]);
len = 0;
while (s[len])
  len++;
printf("\nCuvantul '%s' are %d litere\n", s, len);
Memorat
malex
Client obisnuit
**

Karma: 6
Deconectat Deconectat

Mesaje: 53



Vezi Profilul
« Răspunde #2 : Decembrie 14, 2005, 15:59:59 »

ideea e ca e mai complicat in C.
In pascal pot aduna sirurile direct, am functii exact cu ce-mi trebuie.
In C daca adun pe caractere tot timpu risc sa ma trezesc cu caractere ciudata daca nu pun cand si cum trebuie \0.

M-ar interesa sa vad undeva pe un site diferite operatii cu stringuri in C/C++ copieri adaugari.... sau sa stiu cum pot declara stringuri lungi in pascal
Memorat

Programarea e frumoasa daca o inveti logic..
vladcyb1
Vorbaret
****

Karma: 33
Deconectat Deconectat

Mesaje: 166



Vezi Profilul
« Răspunde #3 : Decembrie 14, 2005, 16:39:44 »

Nu cred ca poti sa maresti lungimea stringului. Daca vrei mai mult de 255 de caractere....trebuie sa ti scri singur funcii de concatenare si restul...
Memorat

Vlad Berteanu
greco
Nu mai tace
*****

Karma: 144
Deconectat Deconectat

Mesaje: 434



Vezi Profilul
« Răspunde #4 : Decembrie 14, 2005, 16:59:11 »

Citat din mesajul lui: malex
ideea e ca e mai complicat in C.
In pascal pot aduna sirurile direct, am functii exact cu ce-mi trebuie.
In C daca adun pe caractere tot timpu risc sa ma trezesc cu caractere ciudata daca nu pun cand si cum trebuie \0.

M-ar interesa sa vad undeva pe un site diferite operatii cu stringuri in C/C++ copieri adaugari.... sau sa stiu cum pot declara stringuri lungi in pascal


Cod:
#include <cstdio>
#include <string>
using namespace std;

int main () {
string a = "Forza", b = "Steaua";
printf ("%s\n", (a + " " + b).c_str ());
return 0;
}
Memorat

Jump in the cockpit and start up the engines
Remove all the wheelblocks there's no time to waste
Gathering speed as we head down the runway
Gotta get airborne before it's too late.
svalentin
Nu mai tace
*****

Karma: 88
Deconectat Deconectat

Mesaje: 704



Vezi Profilul
« Răspunde #5 : Decembrie 14, 2005, 17:33:04 »

In free pascal sau alte compilatoare pe 32 de biti mai ai un tip de string, care poate sa fie peste 255.
Din pacate nu mai am instalat free pascal sa iti zic exact, dar exista! cauta prin documentatia de la el.. (cauta in toate fisierele "string"... trebuie sa gasesti)

Cat despre stringurile din C.. daca exersezi putin cu ele, o sa vezi ca nu e mare lucru, intradevar, e putin diferit, dar nu cu mult.. sfatul meu este sa exersezi cu stringuruile din C (stringurile si eventual si cu pointerii) si sa ramai pe C complet!


Iar exemplul care l-a dat greco este folosit stringurile din STL (Standard Template Library), care face parte din standardul de C++ (dar nu si de C!)
Memorat
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines