代码之家  ›  专栏  ›  技术社区  ›  wrut

如何从输出中删除最后一个逗号?在c中

  •  0
  • wrut  · 技术社区  · 2 年前
    #include<stdio.h>   
    #include<unistd.h>
    
    void ft_putchar(char x, char y, char z){
        write(1, &x, 1);
        write(1, &y, 1);
        write(1, &z, 1);
    }
    void ft_print_comb()
    {
        char i, j, k;
        i = '0';
    while (i <= '7') {
        j = i + 1;
        while (j <= '8') {
            k = j + 1;
            while (k <= '9') {
                if(i =='7' && j=='8') */ i created this section to remove comma*/
                {
                    ft_putchar('7', '8', '9');
                    write(1, '1 ', 1);
                }
                else
                    ft_putchar(i, j, k);
                    write(1, ", ", 2);
                    k++;
            }
            j++;
        }
        i++;
    }
    }
    int main(){
        ft_print_comb();
        return 0;
    }
    

    我编写了一个代码来创建一个函数,该函数以升序显示三个不同数字的所有不同组合,按升序列出,但我不知道如何从输出中删除最后一个逗号?我的输出结尾如下所示

    579, 589, 678, 679, 689, 789,

    2 回复  |  直到 2 年前
        1
  •  1
  •   dbush    2 年前

    最简单的方法是始终先打印逗号,但不要在第一次迭代时打印。

    int first = 1;
    while (i <= '7') {
        j = i + 1;
        while (j <= '8') {
            k = j + 1;
            while (k <= '9') {
                if (!first) {
                    write(1, ", ", 2);
                } else {
                    first=0;
                }
                ft_putchar(i, j, k);
                ...
    
        2
  •  1
  •   Unmitigated    2 年前

    #include <stdbool.h>
    // ...
    bool first = true;
    while (i <= '7') {
        j = i + 1;
        while (j <= '8') {
            k = j + 1;
            while (k <= '9') {
                if (first) first = false;
                else write(1, ", ", 2);
                ft_putchar(i, j, k);
                k++;
            }
            j++;
        }
        i++;
    }