2012-04-27 159 views
1

我有以下問題:字符和字符串問題

計算機在檢查書寫系統,如工資 和應付賬款應用程序頻繁使用。關於每週支付的許多故事流傳 - 正在打印(錯誤)超過100萬美元的支票。奇怪的 由於人爲 錯誤和/或機器故障,數量由計算機化校驗書寫系統打印。系統設計人員當然會盡一切努力將 構建控件集成到他們的系統中,以防止發佈錯誤的檢查。 另一個嚴重的問題是有意改變支票金額的人 - 一個誰打算現金欺詐。爲了防止更改美元金額,大多數計算機化的支票書寫系統採用稱爲檢查 保護的技術。

設計用於計算機打印的檢查包含計算機可能打印金額的 中的固定數量的空間。假設薪水包含九個空白區域,其中計算機應該打印每週工資支票的金額 。如果金額大的話,這些空間的所有九個會充滿

例如:

11,230.60 (check amount) 
--------- 
123456789 (position numbers) 

在另一方面,如果金額少於$ 1000,然後幾個空間將 通常留空 - 例如,

99.87 
--------- 
123456789 

包含四個空格。如果支票是用空格打印的,那麼更容易讓某人更改支票金額 。爲了防止檢查被 改變,許多支票開具系統插入前導星號,以保護量 如下:

****99.87 
--------- 
123456789 

編寫輸入在支票上要打印的美元金額的程序,然後 打印如果有必要,請使用帶星號的檢查保護格式的金額。 假設有九個空間可用於打印金額。

即時通訊不要求任何人爲我或任何東西寫代碼,我只需要一個起點,我們有所有這些不同功能的巨大列表,任何人都可以推薦我可以使用什麼函數從字符串處理庫?

回答

2

我不會做你的功課你,但我會鼓勵你看看下面的功能:

的sprintf - 格式化輸出。

提示:0墊左側

strspn/strcspn輸出 - 在一組字符

提示的數字符的跨度中/沒有:更換額外的零。

memset的 - 填寫存儲區域將字節值

我假設你知道如何做C.指針運算,字符和「字符串」如果沒有,晚自習。我也假設ASCII,而不是unicode。如果是unicode,你可以教我如何在C :-)

+0

哈哈全息它在ASCII :),主題是字符串和字符現在,所以我只是試圖問題,現在這樣做很好剛剛完成了這一個:)感謝幫助! – user1347895 2012-04-27 04:46:25

2

想想要打印的數字的數量和數字之前的星號數量之間的關係。它們應該加在一個常量上,在這種情況下是9.所以如果你得到要打印的數字串的長度,你可以確定首先打印多少個星號。通過使用itoa,發現長度

  • 現在長度。減去從9(最大節數位),你得到的 星號沒有被打印

  • 打印

  • +0

    我不知道爲什麼我首先想到了將這些東西混合成一個數組。 TMTOWTDI。 – Roboprog 2012-04-27 04:47:41

    0
    1. 轉換AMT沒有星號,然後是你的金額。


    int amt,count; 
    char s[10]; 
    printf("Enter Amt"); 
    scanf("%d",&amt); 
    
    /* Store Amount as String */ 
    itoa(amt,s,10); 
    
    /* Calculate Count */ 
    count=9-strlen(s); 
    
    /* Print asterisks */ 
    for(int i=0;i<count;i++) 
    printf("*"); 
    
    /* Print Amount */ 
    printf("%d",amt); 
    
    +0

    謝謝!生病給它一個鏡頭:)如何執行減法? – user1347895 2012-04-27 05:05:23

    +0

    9-strlen(s)其中s是存儲轉換後的字符串的字符串 – Vinod 2012-04-27 05:10:11

    +0

    我已將itoa定義爲的一部分,但它是否未聲明?任何原因爲什麼? – user1347895 2012-04-27 06:52:30