字串宣告
字元
char c='A'; //宣告一個字元變數,初值A(單引號)。
字元陣列
char str1[]={'A','B','C'}; //宣告一個字元陣列,初值ABC(單引號)。
char str2[]={"ABC"}; //宣告一個字元陣列,初值ABC(雙引號)。
char str3[]="ABC";
※str1,str2,str3都可以使用索引值讀取。※
字串
多個字元即為字串。
多字串陣列
char *str2[]={"Hello ","world ","!!"}; //宣告放三個字串的陣列
碰到中文時
※將中文字當成一個字串處理※
char *ten[]={"甲","乙","丙","丁","戊","己","庚","辛","壬","癸"}; //十個「天干字串」的宣告方式
char *dezi[]={"子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥"}; //十二地支的宣告
印出十天干:
for(int i=0;i<10;i++)
printf("%s",ten[i]);
結果:甲乙丙丁戊己庚辛壬癸
印出十二地支:
for(int i=0;i<12;i++)
printf("%s",dezi[i]);
結果:子丑寅卯辰巳午未申酉戌亥
印出十天干與十二地支組合(60甲子):
for(int i=0;i<10;i++){
if (i%10==0) printf("%s ",ten[9]);
else printf("%s ",ten[i%10]);
if (i%12==0) printf("%s ",dezi[11]);
else printf("%s ",dezi[i%12]);
}
結果:
甲子 乙丑 丙寅 丁卯 戊辰 己巳 庚午 辛未 壬申 癸酉
甲戌 乙亥 丙子 丁丑 戊寅 己卯 庚辰 辛巳 壬午 癸未
甲申 乙酉 丙戌 丁亥 戊子 己丑 庚寅 辛卯 壬辰 癸巳
甲午 乙未 丙申 丁酉 戊戌 己亥 庚子 辛丑 壬寅 癸卯
甲辰 乙巳 丙午 丁未 戊申 己酉 庚戌 辛亥 壬子 癸丑
甲寅 乙卯 丙辰 丁巳 戊午 己未 庚申 辛酉 壬戌 癸亥
「公元年數先減三後為基數,基數除10餘數是天干,基數除12餘數便是地支年」。
以2010年為例,年份減3得基數2007,除以10得餘數7,對查天干次序(甲、乙、丙、丁、戊、已、庚、辛、壬、癸)。得「庚」,再將基數2007除以12得餘數為3,再循環對查地支次序(子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥)得「寅」,故2010年為庚寅年。(餘數0可回推為1之前,天干年即10癸、地支年即12亥)