infoarena

infoarena - concursuri, probleme, evaluator, articole => Informatica => Subiect creat de: Munteanu Alexandru din Decembrie 14, 2005, 15:20:31



Titlul: despre stringuri
Scris de: Munteanu Alexandru din 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.


Titlul: despre stringuri
Scris de: cristi8 din 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);


Titlul: despre stringuri
Scris de: Munteanu Alexandru din 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


Titlul: despre stringuri
Scris de: Vlad Berteanu din 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...


Titlul: despre stringuri
Scris de: Tiberiu-Lucian Florea din 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;
}


Titlul: despre stringuri
Scris de: Valentin Stanciu din 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!)