1樓:匿名使用者
printf("/n",temp[i]); 這個應該是輸入吧,要不你用什麼字串改變大小寫
if(temp[i]>='a'&&temp[i]<='z')printf("/n",temp[i]-32);
else if(temp[i]>='a'&&temp[i]<='z')
printf("/n",temp[i]+32);
這個也不對啊,小寫的話就不需要改變。大寫的話才改變而且/ \沒分清
2樓:雙魚座大叔
temp 沒有拷貝字串 strcpy(temp, "abcdefg");
printf("\n");
printf("%c\n", temp[i]-32);//應該這麼寫
3樓:
1、對temp[50]沒有輸入字串就進行操作是不對的;
2、你的printf("/n")都要改成printf("\n").
4樓:匿名使用者
1、temp是空的,不放直接temp[50] = 賦串字元;
2、printf("/n",temp[i]); printf("/n",temp[i]-32); printf("/n",temp[i]+32);什麼意思?????
輸出寫錯了吧
5樓:匿名使用者
1.temp沒有輸入字串就直接操作
2.列印語句不對
6樓:
printf("/n",temp[i]);這個是什麼?
你的輸出完全都是錯的
/ 跟 \ 這兩個分清楚
7樓:匿名使用者
樓主的temp有什麼在啊?
c語言大小寫字母轉換為什麼我這樣寫錯了?
8樓:這個花季那場雪
錯誤1:scanf("");中不應該攜帶任何轉義字元如/n錯誤2:如果採用%c輸入,則回車符會被當作一個字元輸出,所以下一個printf輸出的是一個回車
修改建議:
1、將scanf("%c/n",&a);改成scanf("%c",&a);
2、將printf("%c/n",result);改成printf("%c"); //輸出回車printf("%c/n",result); //輸出結果如果想深入理解錯誤原因,可以瞭解一下輸入緩衝區的概念
9樓:
首先把scanf("%c\n",&a);改成scanf(" %c",&a);。
求問個c語言問題:如圖,為什麼+32後可以大小寫轉換
10樓:匿名使用者
輸出的是assic碼, 而assic編碼中, 大小寫字母之差是32,
11樓:萵苣世家
十進位制 十六進位制 符號 十進位制 十六進位制 符號
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的。
12樓:z的
在c語言的ascii碼錶中大寫字母和小寫字母的差是32
13樓:匿名使用者
沒聽說過ascii碼嗎?可以查查ascii碼。
c語言 字母大小寫轉換 怎麼實現
14樓:匿名使用者
你還有語法(主要對語法使用的理解,編譯器是能過的)問題:(**版格式也有點小問題)
y='x'; /* 這句權實際上是在初始 y 為 'x' 這個字元的 ascii 值 */
if (y<='a'&&y>='z') /* 由於前一條賦值,這一條件等同於
if('x'<='a'&&'x'>='z') 條件總為假,所以下一條永遠不會執行 */
z='y'-('a'-'a'); /* 這條給 z 賦的值,會始終為 'y' 的 ascii 值 */
else
z='y'+32; /* 'y'這個字元再加 32('a'和'a'之差)都已經超出 ascii 基礎 0~127 的範圍了 */
/* 下面是按你的邏輯,把重新寫了寫的,當然還有邏輯錯誤,
* 主要就是區間問題,這個拿個 ascii 表查一下數一下就 oh yeah 了。 */
y=x;
if (y<='a'&&y>='z')
z = y-('a'-'a');
else
z = y+32;
15樓:匿名使用者
這樣寫會更清copy楚點bai,你的錯誤就在判斷du語句**。有
zhi不懂的可以問我
dao#include
int main()
16樓:武林50我愛你
你的本意是想把x賦給y,但是y='x'這句話是把x這個字母的ascii賦給了y,所以達不到想要的效果。
17樓:夏侯政宗
。。。。本來是沒問題的,只是你的x y z別加上單引號啊。。。把xyz的單引號去了,只留abc的應該沒問題
18樓:
把y='x';
if (y<='a'&&y>='z') z='y'-('a'-'a');
else z='y'+32;
兩句改成z=x^0x20;就妥了。
19樓:亦冷
都定義成char看看
20樓:匿名使用者
#include
void main()
c語言大小寫字母轉換
21樓:肆意橫流的思念
#include
void main()
22樓:匿名使用者
思路:先定義字串,並輸入,然後對字串進行遍歷,並判斷是否是大寫字母,如果是則其ascii加32,如果是小寫字元則其ascii減去32,最後輸出字串即可。
#include
int main()
/*執行結果:
abc23def
abc23def*/
23樓:匿名使用者
c1的值從鍵盤輸入,也就是你要轉換的大寫字母,在ascii碼錶中,a-z的ascii碼值是65-90,a-z的ascii碼值是97-122,而且在ascii碼錶中,這些字母的ascii碼值也是按順序排列的,所以你輸入c1的值加上32以後正好是它對應的小寫字母的ascii碼值,printf("%c,%d\n",c1,c1);中「c%」輸出的是c1的字元型值,也就是你從鍵盤輸入的大寫的c1,「d%」輸出的是它對應的ascii值,c2同上。
c語言求怎麼判斷字母的大小寫c語言中如何辨別大小寫字母
c語言中,變數ch如果是一個char型別量,可以用以下的語句來進行判別大小寫 1 if ch a ch z printf c是一個大寫字母 n ch 2 if ch a ch z printf c是一個小寫字母 n ch 3 if ch 0 ch 9 printf c是一個數字字元 n ch 擴充套...
c語言輸入大小寫都有的字母,然後從A開始按大寫形式順序輸出
你宣告的陣列型別就不一樣,試試下面這段 看不懂再問 include include define n 3 void main else if a 0 a a n z include main else a i 0 給字元陣列結束的標誌,否則陣列無輸出for j 0 j 9 j for i j 1 i...
英語為什麼要大小寫同用,英文字母為什麼要有大小寫呢?
英語使用的拉丁字母源於希臘字母,希臘字母最初都是大寫的,沒有小寫。大寫字母筆畫直,不連筆。這種字形適於刻畫而不適於快速筆寫。後來在書寫的過程中,為了書寫的快速方便,筆畫就草率了,這樣就字母就逐漸變圓 拉長,開始接近現在的小寫字母的形狀。為了避免混淆,有的字母增加了筆畫 如i上的小點 有的加上了附加的...