Problem z zapisem do tablicy

0

Witam
Pracuję nad funkcją, która czyści ciąg z powtarzających się spacji, wygląda to tak:

void clear( char tab[]){
    int lastc;
    int i;
    for(i = 0; i < strlen(tab); i++){
       if( tab[i] != ' ' || lastc != ' ')
          putchar(tab[i]);
       lastc = tab[i];
    }
        
}

Mój problem polega na tym, ze nie wiem jak zapisać wartość z putchar(tab[i]) do nowej tablicy, proszę o pomoc.
Pozdrawiam

0

po prostu,

nowaTab[indeks] = tab[i];
0

Dobra ale jak zrobić iterację dla index ?
Problem polega, ze muszę gdzieś te wartości zapisać bo będą ponownie przetwarzane.
Putchar nie załatwia sprawy.

0

Wystarczy napisać
int i,j;
i=j=0;
tab2[j++]=tab[i];

0
mrfustrr napisał(a)

Mój problem polega na tym, ze nie wiem jak zapisać wartość z putchar(tab[i]) do nowej tablicy, proszę o pomoc.

Użyj tej samej tablicy ;)

#include <stdio.h>


int main(void) {
    char            t[] = {'A', 'l', 'a', ' ', 'm', 'a', ' ', 'k', 'o', 't', 'a', ' ', 'a', ' ', 'k', 'o', 't', ' ', ' ', ' ', 'm', 'a', ' ', 'A', 'l', 'e', '\0'};
    unsigned int    i, offset = 0;


    for ( i = 0; i < sizeof(t); i++ ) {
        if ( t[i] == 32 ) {
            offset += 1;
        } else if ( t[i] == '\0' ) {
            break;
        } else {
            t[i - offset] = t[i];
        };
    };

    fprintf(stdout, "%s\n", t);
    return 0;
}
0
Kumashiro napisał(a)
        } else if ( t[i] == '\0' ) {

To może jednak daj poza ify, albo wywal ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1