C語言,A 32表示aA32為什麼會輸出s這兩者怎麼區分

2021-05-30 18:40:38 字數 4474 閱讀 6416

1樓:嘻倪孢

看ascii碼 看'32'對應的值 在加『a』 對應的值 加起來 應該是『s』 對應的ascii碼值

請問,在c語言中a=a+32與a='a'+32有什麼區別,謝謝

2樓:匿名使用者

a=a+32,是變數a在自身原有值的基礎加32,比如變數a如果是int型並且值為1,那麼這條執行完後a的值就成了33(1+32)。

a='a' + 32的話,是變數a等於'a'這個字元的ascii碼的值加上32,就是97+32,a=129。

3樓:匿名使用者

『a』是字元常量,表示對應的ascii碼值97,而a=a+32中的a是程式定義的一個變數。

4樓:孫永超

a是變數,而'a'是字元常量

c語言程式程式main如下: char cc,a,b; cc='a'; a=cc+32; b=cc||32; printf("%c %d\n",a,b); 輸出?為啥?

5樓:

char cc,a,b; //

cc='a'; // a的ascii碼值 65 賦值給變數cc

a=cc+32; // 將a的ascii碼值 65加上32後得小寫字母『a』的ascii碼值

b=cc||32; // '||' 是邏輯或運算,兩邊只要有一個為0則結果得0,兩邊都不為0,結果得1.此時b=1

printf("%c %d\n",a,b); //輸出 變數a所存的字元,和b的值。

6樓:不正便歪

||char cc,a,b;

cc='a'; //cc = 65

a=cc+32; //a =65+32 = 97 = 'a'

b=cc||32; //b = 65 || 32 = 1 ,邏輯或,兩

個都不為0,所以為1

printf("%c %d\n",a,b);

輸出a 1

7樓:匿名使用者

輸出為a 1

'a'的asc碼='a'+32=97;所以a='a';

cc||32 是個邏輯表示式cc=『a'=65不等於0 所以cc||32為真 ||左右只要任一個不等於0都為真

真就是1

所以b=1

8樓:匿名使用者

輸出結果為:a 1

解釋:題目中cc,a,b這三個變數都是字元型變數,而且,cc變數裡存放的是a字元,經過cc+32運算,得知a變數裡存放的是小寫字元a,而b變數是cc變數和32進行邏輯或運算,結果是真的對應轉換成數字1,最後,題目讓把a和b兩個變數的值分別以字元形式(%c)和十進位制整數形式(%d)輸出,中間用空格隔開,所以輸出結果就是a和1,中間按照要求用空格隔開,不知你明白了嗎?

9樓:楊豔紫

a 32

%c輸出的是字母cc+32即 ||是或b輸出要是數字所以是32

應該是這樣的

c語言:c=(c-'a')%26+'a'這句話什麼意思?%26我看不明白。。。

10樓:

x%26就是x除以26取餘數(就是0到25)+1就是結果為1到26;

+2就是結果為2到27;

+3就是結果為3到28;··

·+a就是結果為a到(25+a)

選我的吧

快呀,謝謝啦

11樓:匿名使用者

%在c語言中表示取模,意思是整除取餘數

x % 26結果為0-25

從**來看,程式設計者是想讓結果c表示成一個小寫字母0+'a'='a'

....

25+'a'='z'

12樓:通過**帳號登入

'a'表示字元a,也就是數字65(就是字元a的ascii碼),同理'a'就是97。符號%表示取餘數。也就是c減去65之後對26取餘數,然後加上97,因為其他大寫字元都是在65開始的26個數字只能的,所以如果c的值是大寫字母,減'a'之後得到的是0-25之間的整數,一個小的數除以大的數的餘數還是小的數本身,所以%26這句在c是大寫字母時不發生作用。

之後再加97。因為減去了65加上了97,所以是相當於加上了32,大寫變成裡小寫。 這麼寫與直接加32的區別是如果c不是大寫字母,結果也不會出現奇形怪狀的字元而只會出現錯誤的結果,一般這種寫法是為了防止黑客攻擊。

c語言 'a'與65的區別?

13樓:匿名使用者

你這道題到底是想幹嘛?首先沒講明白程式的目的。看起來像是想進行大小寫轉換。

看起來好像沒什麼錯誤。如果確實有錯誤的話,那估計是s字串沒有進行初始化。

在gets之前加一句:memset(s, 0, sizeof(s));

檔案開頭加一句:#include

哦!還有一個,是小寫字母的時候,要用減32,大寫字母的時候,要用+32進行轉換。因為小寫字母a的值是97,a的值是65。

14樓:匿名使用者

區別如下:

1 型別不同, 二者都是c語言中的常量,不過'a'是字元型(char)常量,而65是整型(int)常量。

2 值不同。字元型常量本質為ascii碼, 'a'的ascii碼值為97,與65是不同的值。

3 二者還是有一定關係的,ascii碼值為65的字元是'a',所以二者雖然表示不同字元,但都是a,只不過一個是大寫,一個是小寫。

15樓:匿名使用者

改過之後完全等價

void str_trans(char s)}

求c語言大神,24題怎麼做,那個*s=t-'a'+'a'是什麼意思

16樓:zyz鄭遠征

將字串中指定的字母轉換成大寫的。

s=「abcddfefdbd」 t='d'

d的ascii值:100,a的ascii值:97,a的ascii值:65

*s=t - 『a』 + 『a』;也就是拿d的ascii值減去a的ascii值,加上a的ascii值,

*s=100 - 97 + 65 = 68,那麼ascii值為68對應的字母是:d

所以此時*s='d',所以d就轉換成了d。

17樓:匿名使用者

就是將小寫的d變成大寫的d, 'a'的ascii碼是97,'a'的ascii碼是65,你代進去看看。 ascii裡面 大寫和小寫字母之間的差就是32, 也就是a-a的值

18樓:做而論道

是把小寫的,變成大寫。

c語言char a='h';a-'a'+'a'得什麼

19樓:海盜青

答案是h 其實就是大小寫轉化

也可以這麼看

h對應的ascii碼十進位制為72 a為65 a為97a-'a'+'a'也就是'h'-'a'+'a'=72-65+97=104

h對應的ascii碼十進位制就是104

20樓:匿名使用者

查ascii碼錶吧,自己查就知道了,h是

72,a是65,a是97. 72-65+97=104,也就是ascii碼錶中對應的h啦,這樣能理解不?

事實上,一個字母減去一個大寫字母后加上一個相同字母的小寫,那麼就是把這個字母由大寫轉為小寫啦!這些就屬於小技巧了吧,只要會看ascii表和char字元的使用就行啦!

21樓:匿名使用者

hc-'a'+'a'一般用來將大寫的c轉為小寫的c

asiic碼中大小寫字母間的偏移都是一樣的

或者可以直接用 c+32來將大寫的字元c轉為小寫的字元

22樓:匿名使用者

這要看你以什麼格式輸出,如果是以%d輸出,則得到104,;以%c輸出,得到'h'。

23樓:03森林

檢視ascll碼錶 ,把裡面的字母對應上去,只是數字的加減法,自己算吧

24樓:匿名使用者

將大寫變為小寫~~~~

c語言為什麼if(c>='a'&&c<='z')這裡已經成立了執行減32變小寫的為什麼最後變大寫的呢

25樓:青雲當自致

#if letter

if(c>='a'&&c<='z')

c=c-32;

#else

if(c>='a'&&c<='z')

c=c+32;

#endif

printf("%c",c);

這裡有編譯巨集,如果letter是1,小寫的轉大寫,不是1,大寫轉小寫。

26樓:胡偉莉

小寫a的ascii是97,減去32後變大寫a,ascii為65

「並且」用c語言怎麼表示,「並且」用C語言怎麼表示

並且用c語言表示方法如下 按位與 例子 int a 1,b 0。a a b。結果a 0。表示式之間的邏輯與 例子 if a b a c 如果a b並且a c則.按位與 例子 int a 1,b 0 a a b 結果a 0 表示式之間的邏輯與 例子 if a b a c 如果a b並且a c則.c語言...

c語言,指標,stm32,C語言的指標問題

tp dev為外結構體變數,當變數被引用時,它必須時一個已經賦值 初始化 的變數,所以tp 被引用時,呼叫的時初始化了的函式指標scan 所指向的函式tp scan tp dev是一個結構體,init scan都是他的結構體成員,這幾個成員的型別是函式指標,也就是說指向了一個函式,使用這個指標,就等...

c語言裡012為什麼表示n換行,C語言 012 什麼意思

c語言中,使用反斜槓加八進位制數字 帶前導0的數字 是用於輸出ascii碼為此八進位制數字的字元的轉義序列。八進位制12 1 8 1 2 8 0 十進位制10,而ascii碼為10的字元是換行符 n 所以它表示換行符。字元常量表示形式 1.a 2.x2f 013 3.65 4.n t 1.a 這種形...