用函數(shù)拆分程序c語言 c語言分?jǐn)?shù)拆分

C語言拆分成自定義函數(shù),完全拆分

用strtok函數(shù)實現(xiàn)吧。 void split( char **arr, char *str, const char *del)//字符分割函數(shù)的簡單定義和實現(xiàn) { char *s =NULL; s=strtok(str,del); while(s != NULL) { *arr++ = s; s = strtok(NULL,del); } } int main() { int i; char *myArray[4]; char s[] = "張三$|男$|濟(jì)南$|大專學(xué)歷$|"; memset(myArray, 0x0, sizeof(myArray)); split(myArray, s, "$|"); for (i=0; i4; i++) { printf("%s\n", myArray[i]); } return 0; }

成都創(chuàng)新互聯(lián)長期為上千余家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為普陀企業(yè)提供專業(yè)的成都網(wǎng)站制作、成都網(wǎng)站建設(shè),普陀網(wǎng)站改版等技術(shù)服務(wù)。擁有十多年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。

如何用C語言拆分整數(shù)?

將一個整數(shù)的各個位分離出來的最簡單方法就是模10,取個位數(shù),直到該變?yōu)?。

參考代碼:

#include stdio.h

void main()

{

int n=0;

scanf("%d", n );

do {

printf("%d\n", n%10 ); //每次輸出個位

n/=10 ; //縮小10倍,去除原來的個位。

}while(n);

}

但這整拆分的特點是從后向前輸出每一位數(shù)。

如果僅是為了輸出,還想正向輸出每一位數(shù),則可用遞歸函數(shù)來解決。(也可以實現(xiàn)逆向輸出)

參考代碼:

#include stdio.h

void split_int( int n )

{

if ( n0 )

{

//printf("%d\n", n%10 );//逆向輸出,放開這里,關(guān)閉下面的printf().即:先輸出當(dāng)前個位,再去高位的數(shù)

split_int( n/10 );//先去輸出高位的數(shù)

printf("%d\n", n%10 ); //再輸出當(dāng)前的個位數(shù)

}

}

void main()

{

int n;

scanf("%d", n);

split_int(n);

}

如果想把分離開的數(shù)據(jù)存儲到數(shù)組中,則最簡單的方法是將整數(shù)用sprintf()存儲到字符數(shù)組中,然后,遍歷數(shù)組,逐位取出。

參考代碼:

#include stdio.h

void main()

{

int n,i;

char str[20];

scanf("%d", n);

sprintf(str,"%d", n);

for( i=0;str[i];i++ ) //正向輸出

printf("%c\n", str[i] );

for( i--;i=0;i-- ) //逆向輸出

printf("%c\n", str[i] );

}

C語言如何拆分2個子函數(shù)

/*如何把上面這個轉(zhuǎn)置3*3?二維數(shù)組程序轉(zhuǎn)換成倆個子函數(shù)*/

#includestdio.h

int?arr[3][3];//將數(shù)組arr定義成一個全局變量

int?main()

{

int?sr();

int?sc();

sr();//輸入二維數(shù)組

sc();//輸出轉(zhuǎn)置后的二維數(shù)組

}

int?sr(){

int?i,j;

for(i=0;i3;i++)

for(j=0;j3;j++)

scanf("%d",arr[i][j]);

return?0;

}

int?sc(){

int?i,j;

for(i=0;i3;i++)

{

for(j=0;j3;j++)

printf("%d?",arr[j][i]); ?

printf("\n");

}

return?0;

}

運行結(jié)果:

嚴(yán)格意義上,你的這個轉(zhuǎn)置并沒有改變arr數(shù)組原來的值,換句話說,執(zhí)行完sc后,arr的值并沒有改變成轉(zhuǎn)置數(shù)組。

可以利用中間數(shù)組來完成數(shù)組轉(zhuǎn)置,修改如下:

如何把上面這個轉(zhuǎn)置3*3?二維數(shù)組程序轉(zhuǎn)換成倆個子函數(shù)*/

#includestdio.h

int?arr[3][3];//將數(shù)組arr定義成一個全局變量

int?main()

{

int?sr();

int?sc();

void?printfarr(int?arr[3][3]);

sr();//輸入二維數(shù)組

sc();//轉(zhuǎn)置

printfarr(arr);//輸出數(shù)組

return?0;

}

int?sr(){

int?i,j;

for(i=0;i3;i++)

for(j=0;j3;j++)

scanf("%d",arr[i][j]);

return?0;

}

int?sc(){

int?i,j;

int?br[3][3];

for(i=0;i3;i++)

for(j=0;j3;j++)

br[i][j]=arr[j][i];//轉(zhuǎn)置后的數(shù)組暫放在數(shù)組br中

for(i=0;i3;i++)

for(j=0;j3;j++)

arr[i][j]=br[i][j];//將轉(zhuǎn)置后的數(shù)組賦值給arr;

return?0;

}

void?printfarr(int?arr[3][3]){//輸出數(shù)組

int?i,j;

for(i=0;i3;i++)

{

for(j=0;j3;j++)

printf("%d?",arr[i][j]); ?

printf("\n");

}

}

結(jié)果和上邊一樣。

名稱欄目:用函數(shù)拆分程序c語言 c語言分?jǐn)?shù)拆分
網(wǎng)頁路徑:http://muchs.cn/article38/ddieppp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)、微信小程序、商城網(wǎng)站電子商務(wù)、網(wǎng)站建設(shè)、網(wǎng)站營銷

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)