請問一下 假如我設了一個陣列A
裡面給他一個字 叫做"個"
請問該如何讓執行的畫面可以顯示出
ㄧ個、二個、.......、九個
而且每一種 分別需要4個.....
也就是說 最後出來的畫面需要
ㄧ個ㄧ個ㄧ個ㄧ個、二個二個二個二個、.....、九個九個九個九個
請問有人可以告訴我怎麼用嗎????>"<
2007-06-07 13:22:55 · 2 個解答 · 發問者 挖勒勒 1 in 電腦與網際網路 ➔ 程式設計
字元陣列...我知道
不過要怎麼讓它可以 自己顯示四次而且要1~9都要各四次呢?
一個陣列裡面放"個"
讓畫面顯示
一個一個一個一個二個二個二個二個.....~八個八個八個八個九個九個九個九個
2007-06-08 15:48:01 · update #1
如果您要使用 ㄧ , 二 ....... 九 這樣的中文字體 , 那就必須另設一個字元陣列來存放這些字體囉 !
2007-06-10 17:30:12 補充:
#include
using namespace std;
int main(void)
{
char a[]="個";
char num[]="一二三四五六七八九";
//因為中文字佔用 2 個位元組,所以i+=2,一次跳 2 個數
for(int i=0;i<18;i+=2)
{
for(int j=0;j<4;j++)
//注意! 顯示時一定要將兩個陣列同時接在一起(才能構成一個完整中文字)
cout << num[i] << num[i+1] << a[0] << a[1];
cout << endl; // 如果不想換行顯示就把這行刪去
}
system("PAUSE");
return 0;
}
2007-06-10 17:36:50 補充:
提供上述實作的程式碼供您參考 ! 若不符合需求可再發問補充 , 或由在下自行刪除回答內容 !
2007-06-10 17:51:34 補充:
#include
using namespace std;
int main(void)
{
//因為中文字佔用 2 個位元組,加上字串尾端 '\0',所以第二維為[3]
char a[1][3]={"個"};
char num[9][3]={"一","二","三","四","五","六","七","八","九"};
2007-06-10 17:52:03 補充:
for(int i=0;i<9;i++)
{
for(int j=0;j<4;j++)
cout << num[i] << a[0];
cout << endl; // 如果不想換行顯示就把這行刪去
}
system("PAUSE");
return 0;
}
2007-06-10 18:01:03 補充:
再提供另一個作法給您參考 ! 如上所述 ...
跟先前的程式不同處在於 :
1. 宣告陣列的初值設定 , 第二個程式使用了二維陣列來存放中文字 .
2. 第二個程式在 for 迴圈中處理陣列資料時 , 較為簡便 , 不需像第一個程式要注意輸出時陣列位置的編排 .
2007-06-10 18:14:26 補充:
解釋第一個程式的字串資料陣列與第二個字串資料陣列的不同 :
第一個程式 : char num[]="一二三四五六七八九";
在 num[] 的內容為 --> "一二三四五六七八九" + ' \0' 在設定初值時尾端會加上 '\0' ('\0'只佔一個位元組) 共佔用 19 個位元組
第二個程式 : char num[9][3]={"一","二","三","四","五","六","七","八","九"};
其 num[9][3] 的內容為 --> num[0][3] = "一" + '\0' ; num[1][3] = "二" + '\0' ~ 依次類推 , 共佔用了 27 個位元組
2007-06-10 18:20:36 補充:
兩種版本的解法視您的需要擇一使用 , 希望經過在下的一番解說 , 能讓您對中文字存放在陣列與運用上能更進一步了解 ! 加油 ~
2007-06-10 23:53:42 補充:
補充更正一下敘述 : (關於 char num[9][3] 的資料)
第二個程式 : char num[9][3]={"一","二","三","四","五","六","七","八","九"};
其 num[9][3] 的內容為 --> num[0][0] ~ num[0][2] = "一" + '\0' ; num[1][0] ~ num[1][2] = "二" + '\0' ~ 依次類推 , 共佔用了 27 個位元組
即 num[0][0] 與 num[0][1] 存放了 "一" , 而 num[0][2] 存放了 '\0'
其他 num[0][] ~ num[8][] 存放的資料原理相同 .
2007-06-10 13:30:12 · answer #1 · answered by 達仔 4 · 0⤊ 0⤋
//Visual Studio 2005
#include
#include
#include
int main(int argc, char* argv[]){
char A[3],B[5],C[7];
printf("%s\n",strcpy(A, "中"));
printf("%s\n",strcpy(B, "中文"));
printf("%s\n",strcpy(C, "中文字"));
system("PAUSE");
return 0;
}
2007-06-09 23:29:53 補充:
A[3]= "個"
B[19]= "一,二,三,四,五,六,七,八,九"
sep[]=","
temp[5];
利用 strtok (string token)函式與迴圈,把陣列 B 的字串取出來,複製到暫存的陣列 temp 就可以了。
2007-06-07 16:18:50 · answer #2 · answered by Big_John-tw 7 · 0⤊ 0⤋