Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Xciąg_znaków -> 10ciąg_znaków

Ostatnio zmodyfikowano 2010-04-12 20:06
Autor Wiadomość
Steryd9339
Temat założony przez niniejszego użytkownika
Xciąg_znaków -> 10ciąg_znaków
» 2010-04-11 17:11:32
Witam!
Chcę zrobić takie coś:
Wprowadzam jakiś wyraz np. "ddt"
I chcę żeby efektem końcowym był łańcuch z 10 znakami czyli "ddt          "-ddt(3)+spacja(7)(w przypadku ddt bo w innych to będzie inaczej) a jeżeli łańcuch będzie dłuższy niż 10 znaków to go skróci do postaci 10 znaków.
P-16015
WunM
» 2010-04-11 17:51:45
To zrób.
P-16018
DejaVu
» 2010-04-11 18:04:29
Jak wyżej z tym, że: http://kursy.ddt.pl/?LessonId=10. Poczytaj jeszcze o tablicach jak zapisywać dane, no ale to chyba wiesz skoro interesujesz się tekstem.

Dodam, że istnieją również funkcje gotowe w bibliotece C do uzyskania tego co chcesz, ale z racji tego, że nie ma chętnych do rozwoju dokumentacji to nie podam nawet nazw funkcji bo i po co... skoro są google :)

/edit:
Zawsze możesz poszukać tutaj: http://cppreference.com
P-16021
franz
» 2010-04-11 18:58:18
W Pascalu była taka funkcja length.W C++ wydaje mi się,że jest ona taka sama.
Wpisz tekst (ddt) do zmiennej string,oblicz jej długość (zwraca int).
Potem od liczby 10 odejmnij wartość length i np w pętli for wyświetl znak spacji x razy (x to różnica z odejmowanie 10 - length)

Mam nadzieje,że o to ci chodzi.
Można to jeszcze zrobić na tablicach.
P-16022
Elaine
» 2010-04-11 19:26:02
{,s,f}printf i łańcuch formatujący "%-10s"?
P-16026
pekfos
» 2010-04-12 16:37:57
C/C++
char * extend_to_10( char * s ) {
    int w = strlen( s );
    char * e = new char[ 10 ];
    for( int a = 0; a < 10; a++ ) {
        if( a > w ) e[ a ] = ' ';
        else e[ a ] = s[ a ];
       
    }
    return e;
}
P-16054
Elaine
» 2010-04-12 17:53:42
Za bardzo kombinujesz...
P-16069
pekfos
» 2010-04-12 18:09:30
Tak to jest jak się pisze na szybko..
C/C++
char * extend_to_10( char * s, char t ) {
    int w = strlen( s );
    char * e = new char[ 11 ];
    for( int a = 0; a < 10; a++ ) {
        if( a >= w ) e[ a ] = t;
        else e[ a ] = s[ a ];
       
    }
    e[ 10 ] = '\0';
    return e;
}

teraz wyjaśnienie dla tych co nie zrozumieli kodu:
parametr s to ciąg do rozszerzenia do 10 znaków(lub skrócenia
do 10 znaków) a parametr t to znak, którym wypełnione będą
puste pola(gdy s jest krótszy od 10)
P-16072
« 1 » 2
  Strona 1 z 2 Następna strona