Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

strcpy - ali s desna

[es] :: C/C++ programiranje :: C/C++ za početnike :: strcpy - ali s desna

[ Pregleda: 1432 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

brankec
Bosanski Brod

Član broj: 140157
Poruke: 161
*.teol.net.



Profil

icon strcpy - ali s desna02.03.2008. u 20:18 - pre 196 meseci
Imam sledeci string x1="12345 " velicine 10 bajta + nul znak. Moje pitanje je dali ima neka gotova funkcija u C jeziku koja ce mi kao rezuktat dati sledece x1=" 12345". Znaci da mi praznine budu napred. Nije mi tesko napisati kod za ovaj problem, ali mozda ima lakse (krace) resenje.
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4902
*.dynamic.sbb.co.yu.

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: strcpy - ali s desna02.03.2008. u 20:45 - pre 196 meseci
strcpy može da kopira od bajta koji joj navedeš, jer je destination običan pokazivač na char.

Code:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(void)
{
   /* prostor od 11 elemenata: CIFRE=0..9, 10=NULL (nastace kao zavrsni kopirani bajt onoga sto kopiramo)*/
   char gde[10+1];
   /* sta se kopira */
   char *sta = "12345";
   /* popunimo sa blankovima (ali u ovom slucaju cemo zvezdicama da vidimo sta radimo) */
   memset( gde, '*', 10 );
   /* kopiramo od pozcije koja je u vezi sa duzinom stringa koga kopiramo i ukupnim raspolozivim prostorom */
   strcpy( &gde[10-strlen(sta)], sta );
   /* rezultat */
   printf( "%s\n", gde );

   system( "PAUSE" );
   return 0;
}
 
Odgovor na temu

brankec
Bosanski Brod

Član broj: 140157
Poruke: 161
*.teol.net.



Profil

icon Re: strcpy - ali s desna02.03.2008. u 21:17 - pre 196 meseci
Hvala ti na odgovoru, razjasnio si mi mnoge stvari.
Ali...(moja greska prilikom kucanja) u
x1="12345 " se iza 12345 nalaze praznine, znaci citavih 10 bajta je popunjeno, a ne x1="12345". Znaci da bih morao odseci te praznine pa onda ...
 
Odgovor na temu

Eurora3D Team
Nebojsa - Programer & Vodja tima
Beograd

Član broj: 120376
Poruke: 900
91.148.114.*



+7 Profil

icon Re: strcpy - ali s desna04.03.2008. u 03:28 - pre 196 meseci
Evo sad imas gotovu funkciju
Code:

#include <iostream>

char* InvertSpace(char*, int);

int main()
{
    char* inBuffer = "12345     ";
    printf( "%s\n", inBuffer);
    char* outBuffer = InvertSpace(inBuffer,10);
    printf( "%s\n", outBuffer);
    system( "PAUSE" );
    return 0;
}
char* InvertSpace(char* lpIn, int len)
{
    int counter=0;
    char *buffer = new char[len];
    memset( buffer, ' ', len);                  // prazno
    buffer[len]=0;                                // nula na kraju
    while (lpIn[counter] != ' ')
        counter++;                                 // brojimo do space
    counter = len - counter;
    for(int n=len - counter ; n< len ; n++)
        buffer[n]=lpIn[n-counter];
    return buffer;
}

 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: strcpy - ali s desna

[ Pregleda: 1432 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.