【问题标题】:How to delete last character from output in c如何从c中的输出中删除最后一个字符
【发布时间】:2021-05-10 10:55:33
【问题描述】:

假设我的代码是

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

这个程序的输出将是

1, 2, 3, 4,

我怎样才能得到类似的输出

1, 2, 3, 4

最后的, 应该省略。

【问题讨论】:

    标签: c loops for-loop printf


    【解决方案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
      

      【讨论】:

      • 你的第一个很容易理解。谢谢!
      【解决方案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;
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-07-01
        • 2023-04-06
        • 2011-01-19
        • 2020-03-12
        • 2010-11-08
        • 2021-12-11
        • 2011-11-18
        • 1970-01-01
        相关资源
        最近更新 更多