睡不著…
**案例
#include
intmain()
a[i]
='\0'
;//陣列不會自動新增'\0',要主動去設定,這樣才能輸出字串
printf
("你輸入的字串是;%s\n"
,a);
return0;
}
在c99的陣列標準中,有這樣一句話,陣列的尺寸如果是整型常量或整型常量表示式,或已確定陣列尺寸時,
那麼這個陣列的型別不是乙個可變長度的陣列,否則,它就是可變陣列
但是仍然存在乙個問題,這行**的輸出結果:
請輸入乙個常數
3請開始輸入字元
abc你輸入的字串是;
ab
會發現輸出的字元比輸入的字元少一位
修改後:
#include
intmain()
a[i]
='\0'
;//陣列不會自動新增'\0',要主動去設定,這樣才能輸出字串
printf
("你輸入的字串是;%s\n"
,a);
return0;
}
#include
intmain()
for(i=
0;i<=
10;i++
)return0;
}
輸出結果:
012345678910
奇怪之處:十一號元素可以輸出
新增一句a[10]=111,仍然可以解決
可能新版的編譯器對陣列越界問題建立的保護機制,但最好不要這樣做
儲存字串的方式:
int
main()
;//不寫元素個數,編譯器會自動計算
char b=
;//可以使用字串常量初始化
char c=
"h0d1n"
//使用字串常量初始化可以省略大括號
}
使用字串處理函式需要加上標頭檔案**#include **
#include
#include
intmain()
輸出結果:
size of string=
6strlen string=
5
輸出結果表明,strlen計算的是字元的個數,不包括陣列後的』\0』,計算尺寸時才包括
字串的拷貝不能使用賦值號,使用賦值號會有報錯
#include
#include
intmain()
輸出結果:
str1:new string
str2:new string
str3:copy successfully
str2的內容複製到str1內後為何str1多出來的「tring」不被列印??
複製的過程將』\0』也複製了進去。編譯器讀到』\0』時讓字串結束了
注意!!!:使用該函式時要保證目標字元陣列足以容納零陣列(即逗號左邊的容量容得下右邊的),**
strcpy
(str2,str1)
;//錯誤的!!
但很奇怪,我這樣寫編譯器還能正常輸出。
#include
#include
intmain()
輸出結果
str2=to be
要求:目標陣列(左邊的)已經包含乙個字串,也可以是乙個空字串即「 」,它會找到這個字串的末尾,並把原字串的乙個拷貝給連線過去
#include
#include
intmain()
輸出:
str1=h0d1n
strncat與strncpy相似,都要新增乙個引數來限定連線字串的個數,唯一不同的是,strncat會在連線後字元末尾自動新增』\0』例:
#include
#include
intmain()
else
return0;
}
相比strcmp增加了乙個引數n,用於指定只對比前面的n個字元
問題引出:存放單科的成績用乙個陣列就可以,若要存放多個科目呢???
二維陣列,我們通常也稱它為矩陣,將二維陣列寫成行和列的形式方便我們理解,例:每一列都為乙個資料種類,每一行都屬於乙個個體的資料
int a[6]
[6]//六行六列
char b[4]
[5]//四行五列
double c[3]
[4]//三行四列
在記憶體中的存放:
c語言內,c語言是線性的,二維陣列的存放依然是線性的
例: 要定義乙個四行五列的二維陣列b 。首先,定義乙個一維陣列 b[0],b[1],b[2],b[3]為裡面的元素,進而,每乙個元素再存放乙個一維陣列,可以理解為陣列的巢狀,它都是以線性的方式存放的,可以去查詢配合理解。
a[0]
[0];
//訪問a陣列中第一行第一列的元素b[1
][3]
;//訪問陣列b中第2行第4列的元素
若沒有初始化,陣列內道德值為隨機的
int a[3]
[4]=
;
**:
#include
intmain()
;int i,j;
for(i=
0;i<
3;i++
)putchar
('\n');
}return0;
}
輸出:
123
4567
891011
12
int a[3]
[4]=
,,;
或者
int a[3]
[4]=
,,};
//會更直觀
int a[3]
[4]=
,,};
聯絡上一種情況,上句的意思是,將三行的每行第乙個元素賦值為1,3,5,而其餘沒有被賦值的自動填充為0。
int a[3]
[4]=
;
int a[
4]=,
,;
#include
intmain()
;int i,j;
for(j=
0;j<
4;i++
)putchar
('\n');
}return0;
}
我真的很痛苦
本人一小菜鳥,剛畢業就進了一家的小軟體公司,進去沒有多久,就被外包出去。外包出去沒有什麼,關鍵是公司和甲方說我有兩年的開發經驗。這句話真的讓我非常的受傷。一開始還好,漸漸的他們發現我這個開發有兩年的人不知道東西還不少,估計就都開始鄙視我。這點我可以很明顯的感覺到,這點讓我真的很痛苦。雖然我也告訴我自...
愛真的很痛
不知道什麼時候開始喜歡上了他,早上他跟我說 一大早我以前的女友打 過來告訴我說,她如果考上公務員就和我在一起,沒有就不和我在一起,她說她想我和在一起,所以她現在都很努力的看書 為什麼我的心那樣的痛,他一說完這句話,我的眼淚就流了出來。他是不是值得我去選擇呢?我自己也不知道,我頭好痛,我好辛苦。他也跟...
學習筆記day08
單例設計模式 上圖中,想要實現a,b的配置資訊共享,因為a,b是兩個new,所以必然是不同的物件,一種方法就是將其配置資訊全部設成靜態,但資訊很多時會導致儲存資訊過多。單例設計模式流程 1,主函式main進棧,定義s1 2,等號右邊,single載入進入方法區,接著是single的建構函式。s和ge...