[問題] 如何宣告多個char

看板C_and_CPP作者 (買槍買裝備)時間11年前 (2015/01/16 16:47), 11年前編輯推噓1(7633)
留言46則, 19人參與, 最新討論串1/1
char a1[20],a2[20]..................................................a1000[20] 像這類的int我會用for來寫++ 但是char要用什麼迴圈去定義 char i[20]; for() 這樣好像不行... -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.130.49.94 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1421398048.A.467.html

01/16 16:51, , 1F
第一行是 char array, 第二行說是 int?
01/16 16:51, 1F
意思就是int i可以定義數字 用for迴圈就可以把i定義很多

01/16 16:51, , 2F
你是想要 char[1000][20]?不太懂你的意思...
01/16 16:51, 2F

01/16 16:52, , 3F
還有你忘了,,,.....,買子彈
01/16 16:52, 3F
原char c1[20],c2[20],c3[20],c4[20]; 有四筆資料 我如何宣告一個char用迴圈方式 大概是這個意思 ※ 編輯: b13b46o2 (220.130.49.94), 01/16/2015 16:54:05

01/16 16:53, , 4F
試用途或許可以做成二維陣列 a[1000][20]
01/16 16:53, 4F
一維 ※ 編輯: b13b46o2 (220.130.49.94), 01/16/2015 16:55:42

01/16 16:58, , 5F
還是不懂原Po想幹嘛,是有N個字串,但是沒有宣告成陣列嗎?
01/16 16:58, 5F

01/16 17:00, , 6F
我突然好像了解原Po想幹嘛,想用迴圈宣告 c1[20]~cn[20]
01/16 17:00, 6F
就是這個意思

01/16 17:01, , 7F
這做不到,就用2維啊
01/16 17:01, 7F
#include <stdio.h> #include <stdlib.h> int main(void) { FILE *A ,*B; char c1[20],c2[20],c3[20],c4[20],c5[20],c6[20],c7[20],c8[20],c9[20],c10[20]; A = fopen ("t2.txt" , "w"); B = fopen("t1.txt", "r"); fscanf(B, "%s%s%s%s%s%s%s%s%s%s", c1,c2,c3,c4,c5,c6,c7,c8,c9,c10); int temp1=c1[0] ; c1[0]=c1[3] ; c1[3]=temp1 ; int temp2=c2[0] ; c2[0]=c2[3] ; c2[3]=temp2 ; int temp3=c3[0] ; c3[0]=c3[3] ; c3[3]=temp3 ; int temp4=c4[0] ; c4[0]=c4[3] ; c4[3]=temp4 ; int temp5=c5[0] ; c5[0]=c5[3] ; c5[3]=temp5 ; int temp6=c6[0] ; c6[0]=c6[3] ; c6[3]=temp6 ; int temp7=c7[0] ; c7[0]=c7[3] ; c7[3]=temp7 ; int temp8=c8[0] ; c8[0]=c8[3] ; c8[3]=temp8 ; int temp9=c9[0] ; c9[0]=c9[3] ; c9[3]=temp9 ; int temp10=c10[0] ; c10[0]=c10[3] ; c10[3]=temp10 ; if(c1[1]=='0') {c1[1] = 'L';if(c1[9]=='0') {c1[9]='L';} else{c1[9]='H';}} else{c1[1] = 'H';if(c1[9]=='0'){c1[9]='L';} else{c1[9]='H';}} if(c2[1]=='0') {c2[1] = 'L';if(c2[9]=='0') {c2[9]='L';} else{c2[9]='H';}} else{c2[1] = 'H';if(c2[9]=='0'){c2[9]='L';} else{c2[9]='H';}} if(c3[1]=='0') {c3[1] = 'L';if(c3[9]=='0') {c3[9]='L';} else{c3[9]='H';}} else{c3[1] = 'H';if(c3[9]=='0'){c3[9]='L';} else{c3[9]='H';}} if(c4[1]=='0') {c4[1] = 'L';if(c4[9]=='0') {c4[9]='L';} else{c4[9]='H';}} else{c4[1] = 'H';if(c4[9]=='0'){c4[9]='L';} else{c4[9]='H';}} if(c5[1]=='0') {c5[1] = 'L';if(c5[9]=='0') {c5[9]='L';} else{c5[9]='H';}} else{c5[1] = 'H';if(c5[9]=='0'){c5[9]='L';} else{c5[9]='H';}} if(c6[1]=='0') {c6[1] = 'L';if(c6[9]=='0') {c6[9]='L';} else{c6[9]='H';}} else{c6[1] = 'H';if(c6[9]=='0'){c6[9]='L';} else{c6[9]='H';}} if(c7[1]=='0') {c7[1] = 'L';if(c7[9]=='0') {c7[9]='L';} else{c7[9]='H';}} else{c7[1] = 'H';if(c7[9]=='0'){c7[9]='L';} else{c7[9]='H';}} if(c8[1]=='0') {c8[1] = 'L';if(c8[9]=='0') {c8[9]='L';} else{c8[9]='H';}} else{c8[1] = 'H';if(c8[9]=='0'){c8[9]='L';} else{c8[9]='H';}} if(c9[1]=='0') {c9[1] = 'L';if(c9[9]=='0') {c9[9]='L';} else{c9[9]='H';}} else{c9[1] = 'H';if(c9[9]=='0'){c9[9]='L';} else{c9[9]='H';}} if(c1[1]=='0') {c10[1] = 'L';if(c10[9]=='0') {c10[9]='L';} else{c10[9]='H';}} else{c10[1] = 'H';if(c10[9]=='0'){c10[9]='L';} else{c10[9]='H';}} printf("\"%s\";\n\"%s\";\n\"%s\";\n\"%s\";\n\"%s\";\n\"%s\";\n\"%s\";\n\"%s\";\n\"%s\";\n\"%s\";\n", c1,c2,c3,c4,c5,c6,c7,c8,c9,c10); fprintf(A,"\"%s\";\n\"%s\";\n\"%s\";\n\"%s\";\n\"%s\";\n\"%s\";\n\"%s\";\n\"%s\";\n\"%s\";\n\"%s\";\n", c1,c2,c3,c4,c5,c6,c7,c8,c9,c10); fclose (A); fclose (B); } 我原本寫的 太長了 想精簡 我的txt是 十行 每行十個數字 定義二維可行嗎 他遇到空白就跳了 ※ 編輯: b13b46o2 (220.130.49.94), 01/16/2015 17:03:49

01/16 17:13, , 8F
你確定不先拿本書起來看?這樣繼續硬幹下去是沒有用的...
01/16 17:13, 8F

01/16 17:14, , 9F
就是用二維啊,char[10][20],迴圈跑 10 次
01/16 17:14, 9F

01/16 17:37, , 10F
寫一個code generator啊
01/16 17:37, 10F

01/16 18:04, , 11F
我愛硬幹
01/16 18:04, 11F

01/16 18:15, , 12F
那就別來問了。
01/16 18:15, 12F

01/16 18:17, , 13F
#1KjU7Jm
01/16 18:17, 13F

01/16 18:25, , 14F
樓上幹得好
01/16 18:25, 14F

01/16 18:33, , 15F
用code generator才不會打這麼辛苦
01/16 18:33, 15F

01/16 19:57, , 16F
硬幹可不能解決所有問題啊,不實際
01/16 19:57, 16F

01/16 20:24, , 17F
到底是要精簡還是要硬幹 你好矛盾。
01/16 20:24, 17F

01/16 20:39, , 18F
好屌,硬幹也可以,讀"macro"define"ifdef"之類的編譯
01/16 20:39, 18F

01/16 22:42, , 19F
就慢慢估估到無法了就問
01/16 22:42, 19F

01/16 23:01, , 20F
不用 script 無解
01/16 23:01, 20F

01/16 23:05, , 21F
該不會要metaprograming吧 lol
01/16 23:05, 21F

01/16 23:16, , 22F
太專業了只學過一學期c好痛苦阿
01/16 23:16, 22F

01/16 23:20, , 23F
不過只學過一學期,應該也是有交2維吧,寫起來省時省力
01/16 23:20, 23F

01/16 23:21, , 24F
! 我用嘸蝦米還把教打成交,這啥小啊?!
01/16 23:21, 24F

01/16 23:22, , 25F
我禮拜一用電腦試試看謝謝
01/16 23:22, 25F

01/16 23:35, , 26F
改練編輯器(X
01/16 23:35, 26F

01/17 00:15, , 27F
專業在哪?
01/17 00:15, 27F

01/17 02:04, , 28F
你愛硬幹就去硬幹,還來問什麼?
01/17 02:04, 28F

01/17 13:42, , 29F
好個硬幹 XD
01/17 13:42, 29F

01/18 03:27, , 30F
可以的,硬幹的話是「高級篇巨集編譯語法」,書上沒有
01/18 03:27, 30F

01/18 03:29, , 31F
硬幹倒是個meta programming的好教材 不過... 哈
01/18 03:29, 31F
還是有看過一次書 但是實做畢竟跟書上內容還是有所差距 不幹幹看怎麼知不知道寫不寫的出來 ※ 編輯: b13b46o2 (1.171.21.25), 01/18/2015 12:54:48

01/18 13:23, , 32F
太好笑了 不想學還那麼多理由
01/18 13:23, 32F

01/18 13:24, , 33F
老話一句 隨便你怎麼想 實際狀況跟你想的無關
01/18 13:24, 33F

01/18 13:38, , 34F
看過一次書跟做過一百次練習還是有差別的
01/18 13:38, 34F

01/18 13:39, , 35F
我只感覺你連很基礎的東西都無法掌握了,再怎麼求人
01/18 13:39, 35F

01/18 13:39, , 36F
都幫不了你
01/18 13:39, 36F

01/18 17:46, , 37F
我有點好奇你看的是哪本書 c的規則沒有很多 算容易的吧
01/18 17:46, 37F

01/18 17:46, , 38F
就算是科班的通常也只教一學期的C 不知道這算什麼理由
01/18 17:46, 38F

01/18 20:55, , 39F
char **c;c=new char[N];for(i=0~N-1){c[i]=new char[20];}
01/18 20:55, 39F

01/18 21:45, , 40F
我明天二個方法都試試看 謝
01/18 21:45, 40F

01/18 22:16, , 41F
欸樓樓上 new是C++在用的
01/18 22:16, 41F

01/19 16:41, , 42F
對喔 那就換malloc
01/19 16:41, 42F
結果用fgects寫出來了 有矩陣位置好對 目前在想到底怎麼用fgectc寫 有字元 但是我該怎麼對位... ※ 編輯: b13b46o2 (1.171.19.57), 01/19/2015 21:48:19

01/20 02:12, , 43F
The string in C programming language is actually a
01/20 02:12, 43F

01/20 02:13, , 44F
one-dimensional array of characters which is termi
01/20 02:13, 44F

01/20 02:13, , 45F
nated by a null character '\0'.
01/20 02:13, 45F

01/20 18:04, , 46F
你該學python 用exec簡單太多
01/20 18:04, 46F
文章代碼(AID): #1KkD0WHd (C_and_CPP)