C語言實現字母的大寫轉換成小寫

2021-10-11 21:50:59 字數 1509 閱讀 5910

3 改進

參考資料

程式功能:實現字母的大小寫轉換。輸入乙個大寫字母,接著按下回車,第二行就輸出小寫字母。注意:每次只能輸入乙個字母,否則出錯。

程式設計軟體:visual studio 2019

#define  _crt_secure_no_warnings 1

#include

intmain()

}

scanf首先接收乙個字元,賦值給ch,當scanf函式的返回值為eof時,迴圈終止,否則程式會一直迴圈輸入輸出。那麼,如果我們想終止程式,有什麼辦法可以讓scanf的返回值為eof呢?下面舉例分析。

假設輸入乙個字元a,並按下回車,格式如下圖所示

a被scanf接收,並賦值給ch,回車被getchar()接收,其中回車是換行符,也屬於字元,所以,如果不用getchar處理換行符,在下一次迴圈時,回車被當做字元賦值給ch,進而導致輸出錯誤的結果。你可以試著把getchar()去掉,執行一下,看看會出現什麼結果。程式中的eof 是end of file的縮寫,是定義在標頭檔案stdio.h的乙個巨集,它的值為-1,定義格式為:#define eof (-1))2

對於printf("%c\n", ch+32);因為大寫和小寫字母的ascii碼值相差32,例如a的ascii碼值為65,a的ascii碼值為97。所以在ch上加上32,就會輸出其小寫格式。

當然也可以使用tolower等庫函式轉換大小寫1

,程式如下。

#define  _crt_secure_no_warnings 1

#include

intmain()

}

對於以上程式,如果不小心連續輸入回車,程式會出錯,針對這個問題進行改進,並增加了程式終止功能,當按下ctrl+z時,程式終止。上面兩個程式連續輸入兩次ctrl+z時,也會退出迴圈。

執行以上程式,可以發現,即使連續輸入換行符,也不會輸出錯誤的結果。如果想要程式結束,則輸入ctrl+z3

,可以看到乙個^z字元,再按下回車,程式結束。

大小寫轉換_牛客網

↩︎↩︎

c語言中eof到底是什麼?↩︎

c語言scanf返回值↩︎

小寫金額轉換成大寫

原作在sql 2000中有一些問題。修正錯誤並在sql 2000中執行通過。set nocount on select v lowerstr ltrim rtrim str n lowermoney,20,2 四捨五入為指定的精度並刪除資料左右空格 select i i 1 select v upp...

小寫金額轉換成大寫 sql server

if exists select from dbo.sysobjects where id object id n dbo l2u andxtype in n fn n if n tf drop function dbo l2u go create function dbo.l2u n lowerm...

小寫金額轉換成中文大寫金額

public string cmycurd decimal num str2 str2.substring 15 j 取出對應位數的str2的值。如 200.55,j為5所以str2 佰拾元角分 迴圈取出每一位需要轉換的值 for i 0 i j i else else else else else...