簡體   English   中英

關於C編程中的左填充?

[英]About left padding in C programming?

我已經搜索了該網站,但似乎找不到與我的問題有關的解決方案:

例:

    printf("%s I love puppies", name);

這是我的prinf語句,但是我如何在其中的pad處留出for循環呢?

編輯:

    Hello  //int i is 0
      Hello  //int i is 1
        Hello  //int i is 2
          Hello  //int i is 3

我想做這樣的事情:(在循環中)

     space += "  "   //where space is first initialized as "" 

在C編程中是否有與此功能類似的函數(在Java中)?

編輯:事情是我有這個:printf(“%s I love puppies”,name);

我當時正在考慮使用int space = i(根據循環計數器),然后執行printf(“%s”,space,“%s I love puppies”,name); 在printf中,但它說我有太多爭論...

您可以提供%s格式轉換的長度(就像其他任何格式代碼一樣)。 因此%10s將至少打印10個字符。

默認情況下,字符串在左側用空格填充。 (這也與其他格式代碼相同。)您不能更改printf填充的字符,但是可以使用-%-10s將其填充到右側。

長度規格可以用*代替,這將導致printf在轉換參數之前使用int參數,並將其值用作長度。 (您也可以使用精度值來執行此操作。)

我想您正在嘗試做的是可變縮進。 將以上內容放在一起,您可以這樣做:

for (int indent = 0; indent < 20; ++indent) {
  printf("%*s%s\n", indent, "", the_string);
}

也許執行一個printf(“”); 在使用現有循環計數作為限制因素的循環中,例如:

for( i=0; i<namelimit; i++ )
{ 
    for(j=0; j<i; j++ ) 
    {
        printf(" ");
    } 
    printf("%s\n",name); 
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM