欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

C語言字符串函數(shù)不用指針 c語言沒有指針

c語言求字符串長度,用函數(shù),不用指針

可以直接用函數(shù)。。。

延慶ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為成都創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18980820575(備注:SSL證書合作)期待與您的合作!

比如

char?s[]?=?"aaabbbccc";

int?len?=?strlen(s);

strlen就可以用來求字符串的長度。。。

也可以自己寫個函數(shù)來實現(xiàn)。。。

#include?stdio.h

int?len(char?s[]){

int?i;

for(i=0;s[i]!='\0';i++);

return?i;

}

void?main(){

char?s[]??=?"aaabbbccc";

int?sLen?=?len(s);

printf("%s的長度是?:%d\n",s,sLen);

}

C語言不用指針如何用一個字符串代替另一個字符串

用字符串函數(shù),strcpy();

如,

char

a[10]="my",b[]="hello!";

strcpy(a,b);

//將b中字符串拷貝到a中。

printf("%s",a);

其中,a的長度必須大于b;

不知道你具體需要什么。這只是一個方法,具體需要怎樣需要你自己去變通!

c語言函數(shù)返回字符串時必須要用指針嗎?如果返回結(jié)構(gòu)體呢?函數(shù)在返回那些類型值時必須要用指針?

所謂函數(shù)類型是指函數(shù)返回值的類型。在C語言中允許一個函數(shù)的返回值是一個指針(即地址),這種返回指針值的函數(shù)稱為指針型函數(shù)。

定義指針型函數(shù)的一般形式為:

類型說明符 *函數(shù)名(形參表)

{

…… /*函數(shù)體*/

}

其中函數(shù)名之前加了“*”號表明這是一個指針型函數(shù),即返回值是一個指針。類型說明符表示了返回的指針值所指向的數(shù)據(jù)類型。

如:

int *ap(int x,int y)

{

...... /*函數(shù)體*/

}

表示ap是一個返回指針值的指針型函數(shù),它返回的指針指向一個整型變量。

【例】本程序是通過指針函數(shù),輸入一個1~7之間的整數(shù),輸出對應(yīng)的星期名。

main(){

int i;

char *day_name(int n);

printf("input Day No:\n");

scanf("%d",i);

if(i0) exit(1);

printf("Day No:%2d--%s\n",i,day_name(i));

}

char *day_name(int n){

static char *name[]={ "Illegal day",

"Monday",

"Tuesday",

"Wednesday",

"Thursday",

"Friday",

"Saturday",

"Sunday"};

return((n1||n7) ? name[0] : name[n]);

}

本例中定義了一個指針型函數(shù)day_name,它的返回值指向一個字符串。該函數(shù)中定義了一個靜態(tài)指針數(shù)組name。name數(shù)組初始化賦值為八個字符串,分別表示各個星期名及出錯提示。形參n表示與星期名所對應(yīng)的整數(shù)。在主函數(shù)中,把輸入的整數(shù)i作為實參,在printf語句中調(diào)用day_name函數(shù)并把i值傳送給形參n。day_name函數(shù)中的return語句包含一個條件表達式,n值若大于7或小于1則把name[0]指針返回主函數(shù)輸出出錯提示字符串“Illegal day”。否則返回主函數(shù)輸出對應(yīng)的星期名。主函數(shù)中的第7行是個條件語句,其語義是,如輸入為負數(shù)(i0)則中止程序運行退出程序。exit是一個庫函數(shù),exit(1)表示發(fā)生錯誤后退出程序,exit(0)表示正常退出。

應(yīng)該特別注意的是函數(shù)指針變量和指針型函數(shù)這兩者在寫法和意義上的區(qū)別。如int(*p)()和int *p()是兩個完全不同的量。

int (*p)()是一個變量說明,說明p是一個指向函數(shù)入口的指針變量,該函數(shù)的返回值是整型量,(*p)的兩邊的括號不能少。

int *p()則不是變量說明而是函數(shù)說明,說明p是一個指針型函數(shù),其返回值是一個指向整型量的指針,*p兩邊沒有括號。作為函數(shù)說明,在括號內(nèi)最好寫入形式參數(shù),這樣便于與變量說明區(qū)別。

對于指針型函數(shù)定義,int *p()只是函數(shù)頭部分,一般還應(yīng)該有函數(shù)體部分。

在ANSI C標準中允許用結(jié)構(gòu)變量作函數(shù)參數(shù)進行整體傳送。但是這種傳送要將全部成員逐個傳送,特別是成員為數(shù)組時將會使傳送的時間和空間開銷很大,嚴重地降低了程序的效率。因此最好的辦法就是使用指針,即用指針變量作函數(shù)參數(shù)進行傳送。這時由實參傳向形參的只是地址,從而減少了時間和空間的開銷。

【例】計算一組學生的平均成績和不及格人數(shù)。用結(jié)構(gòu)指針變量作函數(shù)參數(shù)編程。

struct stu

{

int num;

char *name;

char sex;

float score;}boy[5]={

{101,"Li ping",'M',45},

{102,"Zhang ping",'M',62.5},

{103,"He fang",'F',92.5},

{104,"Cheng ling",'F',87},

{105,"Wang ming",'M',58},

};

main()

{

struct stu *ps;

void ave(struct stu *ps);

ps=boy;

ave(ps);

}

void ave(struct stu *ps)

{

int c=0,i;

float ave,s=0;

for(i=0;i5;i++,ps++)

{

s+=ps-score;

if(ps-score60) c+=1;

}

printf("s=%f\n",s);

ave=s/5;

printf("average=%f\ncount=%d\n",ave,c);

}

本程序中定義了函數(shù)ave,其形參為結(jié)構(gòu)指針變量ps。boy被定義為外部結(jié)構(gòu)數(shù)組,因此在整個源程序中有效。在main函數(shù)中定義說明了結(jié)構(gòu)指針變量ps,并把boy的首地址賦予它,使ps指向boy數(shù)組。然后以ps作實參調(diào)用函數(shù)ave。在函數(shù)ave中完成計算平均成績和統(tǒng)計不及格人數(shù)的工作并輸出結(jié)果。

由于本程序全部采用指針變量作運算和處理,故速度更快,程序效率更高。

當前題目:C語言字符串函數(shù)不用指針 c語言沒有指針
轉(zhuǎn)載來于:http://chinadenli.net/article24/doddjce.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、網(wǎng)站策劃、網(wǎng)站排名、商城網(wǎng)站、網(wǎng)站改版、品牌網(wǎng)站設(shè)計

廣告

聲明:本網(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)

成都網(wǎng)站建設(shè)