1. 程式人生 > >修改itoa函式,使得該函式可以接受三個引數。其中第三個引數為最小字元寬度。

修改itoa函式,使得該函式可以接受三個引數。其中第三個引數為最小字元寬度。


#include <stdio.h>
#include <limits.h>

void itoa(int n, char s[], int width);
void reverse(char s[]);

int main(void) {
    char buffer[20];

    itoa(INT_MIN, buffer, 7);
    printf("Buffer:%s\n", buffer);

    return 0;
}

void itoa(int n, char s[], int width) {
    int i, sign;

    if
((sign = n) < 0) n = -n; i = 0; do { s[i++] = n % 10 + '0'; printf("%d %% %d + '0' = %d\n", n, 10, s[i-1]); } while ((n /= 10) > 0); if (sign < 0) s[i++] = '-'; while (i < width ) /* Only addition to original function */ s[i++] = ' '
; s[i] = '\0'; reverse(s); } void reverse(char s[]) { int c, i, j; for ( i = 0, j = strlen(s)-1; i < j; i++, j--) { c = s[i]; s[i] = s[j]; s[j] = c; } }

相關推薦

修改itoa函式使得函式可以接受引數其中引數小字寬度

#include <stdio.h> #include <limits.h> void itoa(int n, char s[], int width); void reverse(char s[]); int main(void)

effective c++乾貨之條款06:若不想使用編譯器自動生成的函式明確拒絕

假如你建立了一個類用來表示世界上的每一個人: class aPerson { //... }; 每一個人都是獨一無二的,所以為一個人做一個副本顯得有悖倫理道德,那麼我們就應該禁止拷貝構造和copy assignment操作(統稱為copying 函式)。 不幸的

有一個二叉樹現在懷疑它有一個結點有2父節點請寫出一個函式來判斷二叉樹是否存在一個節點含有2父節點如果存在返回true否則返回false

可以這樣,要檢測一個結點是否有兩個父親時,先把從該結點開始的結點與原樹分離,分成兩部分,然後再從原樹再查詢該結點,如果找到那就是有兩個結點,如果沒有則遞迴查詢。</span> struct Node{ Node *pLeft; Node *pRight; int

條款06:若不想使用編譯器自動生成的函式明確拒絕

結論1:為駁回編譯器自動(暗自)提供的機能,可將相應的成員函式宣告為private並且不予實現。 一般而言這個做法並不絕對安全,因為member函式和friend函式還可以呼叫private函式,此時可以將copy建構函式和copy assignment操作符宣告在一個專門

《Effective C++》條款6:若不想使用編譯器自動生成函式明確拒絕

         條款5中講了編譯器會預設為我們定義一些函式,①copy建構函式 ②copy assignment ③解構函式④default建構函式 ,那如果我們不想使用這些函式怎麼辦?條款5中講到了,什麼情況我們需要自己定義cpoy assignment和copy 建構函

習題 9.8 修改6題的程式增加一個fun函式改寫main函式在fun函式中呼叫change和display函式在fun函式中使用物件的引用(Student &)作為形參

C++程式設計(第三版) 譚浩強 習題9.8 個人設計 習題 9.8 修改第6題的程式,增加一個fun函式,改寫main函式。改為在fun函式中呼叫change和display函式。在fun函式中

用一個函式實現將一行字串中短的單詞輸出此行字串從主函式傳遞給該函式。假設字串中包含的單詞以空格作為分隔符號例如”Asia Games 2010 is held in GuangZhou.”,其中最短的單詞是”is”和”in”

山大 23:57:13 /* 輸入完單詞後不用再加空格!如果是兩個單詞一樣短還不能實現*/ #include<stdio.h>#include<string.h>void main(){int f(char str[],char str1[],int

Linux-C基礎知識學習:C語言作業-將5學生成績儲存在一個數組中單獨實現一個計算平均成績的average函式 在main函式中獲取函式返回的平均值並列印

Linux基礎知識學習 C語言作業:將5個學生成績儲存在一個數組中,單獨實現一個計算平均成績的average函式, 在main函式中獲取該函式返回的平均值,並列印。 #include <s

輸入一個十進位制整數設計遞迴函式整數轉化一個二進位制數 思考: 如何將一個十進位制數轉化成一個8進位制和16進位制數

1,輸入一個十進位制整數,設計遞迴函式,將該整數轉化為一個二進位制數。思考: 如何將一個十進位制數轉化成一個8進位制和16進位制數。 #include<stdio.h> #define  N  20 int main() { int a,n,c,k,i; cha

Effective c++ 條款06:若不想使用編譯器自動生成的函式明確拒絕

通常情況下,如果不希望class支援某一特定機能,只要不宣告對應函式就可以了。但是這個策略對copy建構函式和copy assignment操作符卻不起作用。 1、將相應的函式宣告為private函式 編譯器自動構造的函式都是public的,而

Problem A: 呼叫函式計算分段函式的值

#include<stdio.h> int sign(int n)//函式申明,定義函式 { int m; if(n>0) m=1; if(n==0) m=0; if(n<0) m=-1; return m;//返

呼叫函式計算分段函式的值

Description 輸入x,計算並輸出下列分段函式的值。要求自定義函式sign(x)計算分段函式值,在main函式中輸入x,呼叫函式sign(x)完成計算,輸出函式結果。當x > 0時,函式值為1; 當x = 0時,函式值為0;當x < 0時,函式值為-1。 程式框架:

11月6日排序函式匿名函式回撥函式遞迴函式, zip函式

##### 排序sort, sorted的區別: list.sort(func=None, key=None, reverse=False(or True)) 對於reverse這個bool型別引數,當reverse=False時:為正向排序;當reverse=True時:為方向排序。預設為Fal

建構函式拷貝建構函式解構函式賦值函式

例一: class CGoods {     //行為,成員方法 public:     CGoods(char *name = NULL, int amount = 0, double price = 0.0) //建構函式 &nbs

102_js筆記5_js的函式(普通函式匿名函式箭頭函式回撥函式函式的提升自調函式

一,函式的定義和使用 1) 函式宣告方式 function add(num1,num2){       return num1+num2;   } function add(num1,num2){ return num1+num2; }

20181130(裝飾器補充疊加多裝飾器有參裝飾器三元表示式生成式匿名函式內建函式

  一、裝飾器的補充 1、函式屬性的傳遞 Python裝飾器(decorator)在實現的時候,被裝飾後的函式其實已經是另外一個函數了(函式名等函式屬性會發生改變),為了不影響,Python的functools包中提供了一個叫wraps的decorator來消除這樣的副作用。寫一個decora

演算法優化(1):基礎知識-凸集單峰函式擬凸函式與凸函式函式凹凸性定義

本文筆記介紹我最近學習的演算法優化的基礎知識,有: 最優化問題的一般形式 約束問題的分類及形式 優化問題的分類 單峰函式(Unimodal function)的定義 擬凸函式(Quasiconvex function)的定義

(D10)Python-函式lambda匿名函式

函式Function 函式變數 函式名是變數,他在建立函式時繫結一個函式 一個函式可以作用另一個函式的實參傳遞 可以吧一個函式傳遞給另一個函式,另一個函式的形參變數將繫結實參函式 示例1: 看懂如下程式

MySQL 中的函式--------日期函式字串函式數學函式一些其他函式

函式 日期函式 字串函式 數學函式 其他函式 日期函式 函式名稱 描述 current_da

虛擬函式純虛擬函式抽象類點H與點CPP檔案的結合

我居然可以將if…else if和if…if一視同仁,這是變瞎的前兆嗎? 題目:列印當月每個週日的日期和週日總的次數 #include<stdio.h> int main() { int i = 1,j = 1; for(i =