c語言中關於,C語言中關於ch ch a A 的大小寫轉換,為什麼不直接是「ch ch 32」?請大俠詳解!!!

2023-01-27 03:30:16 字數 5541 閱讀 1058

1樓:匿名使用者

兩種寫法結果一致,之所以寫成第一個**,是」可閱讀性「更好,通過**很容易明白在做什麼,而第二個ch-32,32**來的?為什麼是32?非編寫者閱讀程式會很痛苦。

2樓:匿名使用者

因為比較清楚,讓閱讀**的人一看就知道這行**的目的是執行大小寫轉化

3樓:王匯西

以後寫程式多向此學習,類似情況要多采用全字元處理,這樣可以避免資料型別轉換出現問題。

不知道你的ch是什麼,你自己多想一下,最好自己試一試,就會發現。

-32一般也不會出錯,用-'a'+'a'更顯技術含量,呵呵。

4樓:紅色縹緲

ch=ch-'a'+'a'

和ch=ch-32等效啊

c語言中 ch=a 那麼ch=(ch+32)的含義是

5樓:義軍網路

你好!應該是將ch1,ch2,的assic碼值減小32.可以認為是將小些字母轉換為大寫字母。

最好多貼幾行相關的語句,否則也不好判斷

c語言中大小寫字母轉換為什麼不用寫scanf("%c",ch)?

6樓:呼延軒

#include //標頭檔案寫一遍就好-_-!

int main()

7樓:英雄志

你也可以用scanf的,都是從鍵盤接收一個字元給變數ch,只不過你的scanf語句寫錯了,少了取地址符&,應該用scanf("%c",&ch)。

c語言中,char ch='a';ch!=(ch>='a'&&ch<='z'?ch:(ch+32)),ch!=是什麼意思啊?

8樓:匿名使用者

ch>='a'&&ch<='z'就是說ch是個英文字母,連起來就是說如果ch是字母,則保持不變,否則ascii值加上32,你看下ascii碼錶就知道了,比如字元'0',十進位制是48,加上32就是80也就是字元'p'

9樓:御含靈

如果是你寫的那句話

ch!=(ch>='a'&&ch<='z'?ch:(ch+32))這個就是一個邏輯表示式 就是判斷ch是不是在['a','z']這個範圍之外(可列印字元?)

在這個範圍以內(ch>='a'&&ch<='z'?ch:(ch+32))還是返回ch ch!=ch為假。

ch!=(ch>='a'&&ch<='z'?ch:(ch+32))和這句話是等價的 ch<'a'||ch>'z'

懷疑是不是某人寫錯了 因為沒有賦值語句啊,就是一個邏輯表示式參考下面的asc碼錶

10樓:zi皿

!=是不等於的意思 !的意思是否定

c語言中關於大小寫字母轉換

11樓:訾歡宰書萱

實現任意大小寫字母轉換。**如下:

#include

void main()

else

if( x>='a' && x<='z')printf("%c\n",x);

}小寫字母轉換成大寫字母的**如下:

#include

void main()

3大寫字母轉換成小寫字母的**如下:

#include

void main()

c語言大小寫轉換

12樓:匿名使用者

#include

main()

將if-if改為if-else if

13樓:

樓主輸入小a後執行ch=ch-32,把小a轉換為了大a,而下面的if語句又把大a轉換為了小a,樓主應該在第二個if前加一個else,這樣就可以實現大小寫轉換了!

14樓:匿名使用者

因為你第一個if 把小寫a轉為大寫a

但第二個if又把a轉化為a了。

所以看到結果是一樣,你除錯一下就知道是怎麼樣了。

把if改為if else就可以解決問題了。

c語言中, 英文字母的大小寫的轉換,請給我詳細講解一下,(以下下面這個為例,這個為何要先減去'a'

15樓:農民工談三農

雖然我不是很明白你具體想說什麼,但是我可以給你解釋一下c語言中大小寫轉換主要就是利用ascii**中,大小寫相差32的原理,其程式為:

#include

int main()

你明白沒有呢?沒有的話可以繼續問我哈,很高興為你解答哦

16樓:匿名使用者

你的說法是對的。ascii碼錶中大小寫字母的值確實相差了32,但這是在你十分清楚兩者之間的差值的前提下才能寫出來,而用 c = c - 'a' + 'a' 則可以不用記下這個差值就可以實現轉換了。

我覺得你沒有必要去糾結這個問題,這裡更多隻是說明一種方法而已。所謂條條大道通羅馬吧。程式設計沒有一成不變的東西。

17樓:匿名使用者

用c -= 32;當然是可以的,但是至少我寫的時候都是c = c - 'a' + 'a' 這樣的,因為懶得去記ascii的值,這樣寫只需要記得大寫字母在小寫字母前面就行了

18樓:

你說的沒錯。

但是一般**裡會用'a'-'a'來表示大小寫asc的差值,這種表達方式比較直觀;另外,如果忘記具體的asc值,仍然可以用這種方式算出大小寫asc的差值。

求問個c語言問題:如圖,為什麼+32後可以大小寫轉換

19樓:匿名使用者

輸出的是assic碼, 而assic編碼中, 大小寫字母之差是32,

20樓:萵苣世家

十進位制 十六進位制 符號 十進位制 十六進位制 符號

0 0h (null) 64 40h @

1 1h 65 41h a

2 2h 66 42h b

3 3h 67 43h c

4 4h 68 44h d

5 5h 69 45h e

6 6h 70 46h f

7 7h beep 71 47h g

8 8h 72 48h h

9 9h '\t' 73 49h i

10 ah '\n' 74 4ah j

11 bh '\v' 75 4bh k

12 ch '\f' 76 4ch l

13 dh '\r' 77 4dh m

14 eh 78 4eh n

15 fh 79 4fh o

16 10h 80 50h p

17 11h 81 51h q

18 12h 82 52h r

19 13h 83 53h s

20 14h 84 54h t

21 15h 85 55h u

22 16h 86 56h v

23 17h 87 57h w

24 18h 88 58h x

25 19h 89 59h y

26 1ah (ctrl-z) 90 5ah z

27 1bh esc 91 5bh [

28 1ch 92 5ch \

29 1dh 93 5dh ]

30 1eh 94 5eh ^

31 1fh 95 5fh _

32 20h 空格符 96 60h `

33 21h ! 97 61h a

34 22h " 98 62h b

35 23h # 99 63h c

36 24h $ 100 64h d

37 25h % 101 65h e

38 26h & 102 66h f

39 27h ' 103 67h g

40 28h ( 104 68h h

41 29h ) 105 69h i

42 2ah * 106 6ah j

43 2bh + 107 6bh k

44 2ch , 108 6ch l

45 2dh - 109 6dh m

46 2eh . 110 6eh n

47 2fh / 111 6fh o

48 30h 0 112 70h p

49 31h 1 113 71h q

50 32h 2 114 72h r

51 33h 3 115 73h s

52 34h 4 116 74h t

53 35h 5 117 75h u

54 36h 6 118 76h v

55 37h 7 119 77h w

56 38h 8 120 78h x

57 39h 9 121 79h y

58 3ah : 122 7ah z

59 3bh ; 123 7bh

62 3eh > 126 7eh ~

63 3fh ? 127 7fh

你可以看到assic表上相對應的大小寫字母的編號是差32的。

21樓:z的

在c語言的ascii碼錶中大寫字母和小寫字母的差是32

22樓:匿名使用者

沒聽說過ascii碼嗎?可以查查ascii碼。

c語言中關於佔位的問題,C語言關於佔位符 問題

整形變數佔位符就是用 d lf是double的佔位符 float型別變數也可以用佔位符 f,如果用 d,那列印出來的就是整形的 i最好不用 字元 輸入資料 變元型別 d 十進位制整數 int i 整數 int 該整數可以是以0開頭的八進位制數,也可以是以0x 0x開頭的十六進位制數 o 八進位制數 ...

c語言中public 函式使用,c語言中public 是什麼意思啊?

c 中是有public的函式,可以在外面進行呼叫的。c語言中public 是什麼意思啊?public 定義一個全域性變數。全域性變數是程式設計術語中的一種,源自於變數之分。變數分為區域性與全域性,區域性變數又可稱之為內部變數。由某物件或某個函式所建立的變數通常都是區域性變數,只能被內部引用,而無法被...

C語言中memcpy函式用法,求助,C語言中函式memset ,memcpy 和strchr 的功能和用法

visual c 把memcpy和memmove實現的一樣,即不用擔心覆蓋的問題,這個可以看vc安裝目錄裡的crt原始碼得知。至於gcc,沒有看過glibc的原始碼。求助,c語言中函式memset memcpy 和strchr 的功能和用法?memset函式用來對一段記憶體空間全部設定為某個字元,常...