一、字符數(shù)組的定義

創(chuàng)新互聯(lián)公司是一家朝氣蓬勃的網(wǎng)站建設公司。公司專注于為企業(yè)提供信息化建設解決方案。從事網(wǎng)站開發(fā),網(wǎng)站制作,網(wǎng)站設計,網(wǎng)站模板,微信公眾號開發(fā),軟件開發(fā),微信平臺小程序開發(fā),十余年建站對崗亭等多個行業(yè),擁有豐富的網(wǎng)站建設經(jīng)驗。
一維字符數(shù)組:用于存儲和處理1個字符串,其定義格式與一維數(shù)值數(shù)組一樣。
char str[20];
二維字符數(shù)組:用于同時存儲和處理多個字符串,其定義格式與二維數(shù)值數(shù)組一樣。
char country[10][20];
country[i]:第i個字符串
二.字符數(shù)組的初始化
字符數(shù)組的初始化.
1.可以通過為每個數(shù)組元素指定初值字符來實現(xiàn)。
char str[10]={ 'I',' ','a','m',' ',‘h’,'a','p','p','y'};
char str[ ]={"I am happy"}; 可以省略花括號,如下所示
char str[ ]="I am happy";
char country[10][20]={“china”,”japanese”,……};
注意:上述這種字符數(shù)組的整體賦值只能在字符數(shù)組初始化時使用,不能用于字符數(shù)組的賦值,字符數(shù)組的賦值只能對其元素一一賦值,下面的賦值方法是錯誤的
char str[15];
str="I am happy";
strcpy(str, "I am happy");
不是用單個字符作為初值,而是用一個字符串(注意:字符串的兩端是用雙引號“”而不是單引號‘’括起來的)作為初值。
‘a(chǎn)’ “a”區(qū)別
三、字符數(shù)組的引用
字符數(shù)組的逐個字符引用,與引用數(shù)值數(shù)組元素類似。
(1)字符數(shù)組的輸入
除了可以通過初始化使字符數(shù)組各元素得到初值外,也可以使用getchar()或scanf()函數(shù)輸入字符。
例如:
char str[10];
…… for(i=0; i10; i++)
{ scanf(\"%c\", str);
fflush(stdin); /*清除鍵盤輸入緩沖區(qū)*/
}
這里只是一部分具體你查看這里:
//代碼1
//要輸入多少個數(shù)據(jù):6
//1?2?3?4?5?6??????(連續(xù)輸入6個數(shù)據(jù))
//1?4?9?16?25?36???(結果)
#includestdio.h
#includestdlib.h?//用于調(diào)用函數(shù)malloc()
void?pr(int?p[],int?j);
int?main()
{
int?i,j;
int?*a;??//指向動態(tài)內(nèi)存
printf("要輸入多少個數(shù)據(jù):");
scanf("%d",j);
//創(chuàng)建動態(tài)內(nèi)存
a=(int?*)malloc(j?*?sizeof(int));
if(a?==?NULL)
{
printf("\n分配動態(tài)內(nèi)存時出錯.\n");
exit(1);
}
for(i=0;ij;i++)
{
scanf("%d",a[i]);
}
pr(a,j);
//原代碼for(int?i=0;ij;i++)
for(i=0;ij;i++)
{
//原代碼printf("%5d\n",a[i]);
printf("%d?",a[i]);
}
return?0;
}
void?pr(int?p[],int?j)
{
int?i;
for(i=0?;?ij?;?i++)
{
p[i]=p[i]*p[i];
}
}
//
//代碼2
#includestdio.h
#includestdlib.h?//用于調(diào)用函數(shù)malloc()
void?pr(int?p[],int?j);
int?main()
{
int?buf[]={1,2,3,4,5,6};
int?i,j;
int?*a;??//指向動態(tài)內(nèi)存
//計算數(shù)組buf的大小
j=sizeof(buf)/sizeof(int);
//創(chuàng)建動態(tài)內(nèi)存
a=(int?*)malloc(j?*?sizeof(int));
if(a?==?NULL)
{
printf("\n分配動態(tài)內(nèi)存時出錯.\n");
exit(1);
}
for(i=0;ij;i++)
{
a[i]=buf[i];
}
pr(a,j);
printf("原數(shù)組里的數(shù)據(jù):?");
for(i=0;ij;i++)
{
printf("%d?",buf[i]);
}
printf("\n");
printf("運算后的數(shù)據(jù):?");
for(i=0;ij;i++)
{
printf("%d?",a[i]);
}
return?0;
}
void?pr(int?p[],int?j)
{
int?i;
for(i=0?;?ij?;?i++)
{
p[i]=p[i]*p[i];
}
}
//
給你看一下我的代碼
#includestdio.h
void main(){
int a[10],b[10],i,j,temp;
for(i=0;i10;i++){
printf("請輸入第%d個數(shù):",(i+1));
scanf("%d",a[i]);
//保存數(shù)組,因為輸入完數(shù)組要冒泡排序,排序后的元素順序可能和原數(shù)組不一樣
b[i]=a[i];
}
//冒泡排序,求最大值
for(i=0;i9;i++){
for(j=0;j9-i;j++){
if(a[j]a[j+1]){ //這里控制的升序還是降序,我這是降序
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
//查找最大值在原數(shù)組的位置
for(i=0;i10;i++){
if(b[i]==a[0]){ //降序的話最大值是a[0],升序的話最大值是a[9]
break; //一旦找到最大值,馬上跳出循環(huán)
}
}
printf("最大值是%d,它在原數(shù)組中是第%d個元素!\n",a[0],(i+1));
}
沒有這樣的庫函數(shù),都比較簡單的,自己寫個好了
如果是字符串數(shù)組,strchrstring.h可以查找某個字符是否在這個字符串數(shù)組中
網(wǎng)站名稱:c語言數(shù)組處理函數(shù),c語言數(shù)組常用函數(shù)
轉(zhuǎn)載注明:http://chinadenli.net/article12/dsijjdc.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設、網(wǎng)站設計公司、網(wǎng)站維護、網(wǎng)站策劃、移動網(wǎng)站建設、手機網(wǎng)站建設
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)