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 這種形...