Informatică, întrebare adresată de laurstefan2002, 8 ani în urmă

#2666 trim de pe pbinfo va rog:
Cerința
Scrieți funcția Trim care primește ca parametru un șir de caractere s, elimină eventualele spații de la începutul și sfârșitul șirului și returnează tot prin intermediul lui s șirul de caractere rezultat.

Restricții și precizări
1 ≤ lungimea șirului ≤ 100
Numele funcției trebuie să fie Trim
Se garantează că șirul inițial conține cel puțin un caracter diferit de spațiu

Exemplu
Dacă s=" ana are mere ", atunci, după apelul Trim(s), șirul va fi s="ana are mere".

Răspunsuri la întrebare

Răspuns de CinevaFaraNume
4

void strcpy(char * dest, const char * src){

   int i;

   for(i = 0; src[i] != '\0'; i++)

       dest[i] = src[i];

   dest[i] = '\0';

}

void Trim(char* s){

   char *str = new char[101];

   strcpy(str, s);

   while(str[0] == ' ' || str[0] == '\t'){

    str++;

   }

int len = 0;

   while(str[len] != '\0')

       len++;

   while(str[len-1] == ' ' || str[len-1] == '\t'){

    str[len-1] = '\0';

       len--;

   }

   strcpy(s, str);

}


laurstefan2002: E de 100 dar am apasat din greseala pe 4 stele scuze.
Răspuns de boiustef
0

#include <cstring>

void Trim(char s[100])

{

   int p, u, i, n, k=-1;

   char w[100];

   n=strlen(s);

   p=0; while (s[p]==' ') ++p;

   u=n-1; while (s[u]==' ') --u;

   w[0]='\0';

   for (i=p; i<=u; ++i)

   {

       ++k; w[k]=s[i];

   }

   ++k; w[k]='\0';

   s[0]=0;

   strcpy(s,w);

}

Alte întrebări interesante