可以直接用函數。。。

延慶ssl適用于網站、小程序/APP、API接口等需要進行數據傳輸應用場景,ssl證書未來市場廣闊!成為成都創新互聯的ssl證書銷售渠道,可以享受市場價格4-6折優惠!如果有意向歡迎電話聯系或者加微信:18980820575(備注:SSL證書合作)期待與您的合作!
比如
char?s[]?=?"aaabbbccc";
int?len?=?strlen(s);
strlen就可以用來求字符串的長度。。。
也可以自己寫個函數來實現。。。
#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);
}
用字符串函數,strcpy();
如,
char
a[10]="my",b[]="hello!";
strcpy(a,b);
//將b中字符串拷貝到a中。
printf("%s",a);
其中,a的長度必須大于b;
不知道你具體需要什么。這只是一個方法,具體需要怎樣需要你自己去變通!
所謂函數類型是指函數返回值的類型。在C語言中允許一個函數的返回值是一個指針(即地址),這種返回指針值的函數稱為指針型函數。
定義指針型函數的一般形式為:
類型說明符 *函數名(形參表)
{
…… /*函數體*/
}
其中函數名之前加了“*”號表明這是一個指針型函數,即返回值是一個指針。類型說明符表示了返回的指針值所指向的數據類型。
如:
int *ap(int x,int y)
{
...... /*函數體*/
}
表示ap是一個返回指針值的指針型函數,它返回的指針指向一個整型變量。
【例】本程序是通過指針函數,輸入一個1~7之間的整數,輸出對應的星期名。
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]);
}
本例中定義了一個指針型函數day_name,它的返回值指向一個字符串。該函數中定義了一個靜態指針數組name。name數組初始化賦值為八個字符串,分別表示各個星期名及出錯提示。形參n表示與星期名所對應的整數。在主函數中,把輸入的整數i作為實參,在printf語句中調用day_name函數并把i值傳送給形參n。day_name函數中的return語句包含一個條件表達式,n值若大于7或小于1則把name[0]指針返回主函數輸出出錯提示字符串“Illegal day”。否則返回主函數輸出對應的星期名。主函數中的第7行是個條件語句,其語義是,如輸入為負數(i0)則中止程序運行退出程序。exit是一個庫函數,exit(1)表示發生錯誤后退出程序,exit(0)表示正常退出。
應該特別注意的是函數指針變量和指針型函數這兩者在寫法和意義上的區別。如int(*p)()和int *p()是兩個完全不同的量。
int (*p)()是一個變量說明,說明p是一個指向函數入口的指針變量,該函數的返回值是整型量,(*p)的兩邊的括號不能少。
int *p()則不是變量說明而是函數說明,說明p是一個指針型函數,其返回值是一個指向整型量的指針,*p兩邊沒有括號。作為函數說明,在括號內最好寫入形式參數,這樣便于與變量說明區別。
對于指針型函數定義,int *p()只是函數頭部分,一般還應該有函數體部分。
在ANSI C標準中允許用結構變量作函數參數進行整體傳送。但是這種傳送要將全部成員逐個傳送,特別是成員為數組時將會使傳送的時間和空間開銷很大,嚴重地降低了程序的效率。因此最好的辦法就是使用指針,即用指針變量作函數參數進行傳送。這時由實參傳向形參的只是地址,從而減少了時間和空間的開銷。
【例】計算一組學生的平均成績和不及格人數。用結構指針變量作函數參數編程。
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);
}
本程序中定義了函數ave,其形參為結構指針變量ps。boy被定義為外部結構數組,因此在整個源程序中有效。在main函數中定義說明了結構指針變量ps,并把boy的首地址賦予它,使ps指向boy數組。然后以ps作實參調用函數ave。在函數ave中完成計算平均成績和統計不及格人數的工作并輸出結果。
由于本程序全部采用指針變量作運算和處理,故速度更快,程序效率更高。
當前題目:C語言字符串函數不用指針 c語言沒有指針
轉載來于:http://www.yijiale78.com/article24/doddjce.html
成都網站建設公司_創新互聯,為您提供網站收錄、網站策劃、網站排名、商城網站、網站改版、品牌網站設計
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯