Как удалить последний символ из вывода в c

#c #loops #for-loop #printf

#c #циклы #для цикла #printf

Вопрос:

Предположим, что мой код

 void main()
{
    for(i=1;i<5;i  )
    { 
        printf("%d, ",i);
    }
}
 

Вывод этой программы будет

 1, 2, 3, 4,
 

Как я могу получить вывод, например

 1, 2, 3, 4
 

Последний , символ следует опустить.

Ответ №1:

 #include <stdio.h>

int main(void)
{
    const char *pad = "";
    for (int i = 1; i < 5; i  )
    {
        printf("%s%d", pad, i);
        pad = ", ";
    }
    putchar('n');
    return 0;
}
 

Вы не можете «удалить» символ после его печати. Вы должны кодировать так, чтобы не печатать то, что на самом деле не требуется.

Ответ №2:

Используйте оператор if. Например

 #include <stdio.h>

int main( void )
{
    for ( int i = 1; i < 5; i   )
    { 
        if ( i != 1 ) printf( ", " );
        printf( "%d", i );
    }

    putchar( 'n' );
}
 

Вывод программы

 1, 2, 3, 4
 

Или для вывода строки.

 #include <stdio.h>

int main( void )
{
    const char *s = "1234";
    
    for ( const char *p = s; *p;   p )
    {
        if ( p != s ) printf( ", " );
        putchar( *p );
    }
    
    putchar( 'n' );
}
 

Снова вывод программы

 1, 2, 3, 4
 

Комментарии:

1. Ваш первый легко понять. Спасибо!

Ответ №3:

Используя if и else ….!!!!

 #include <stdio.h>

int main() {
    // Write C code here
    int i;
    for(i=1;i<5;i  ){
        if(i==4){
            printf("%d",i);
        }
        else{
        printf("%d, ",i);}
    
    }

return 0;
}