int find(char* source/*來源字串*/,char* target/*子字串*/)//找到返回在來源字串中的位置,未找到返回-1,如果要改為找到返回1 ,把return i改為return 1;
{
int i,j;
int s_len=strlen(source);
int t_len=strlen(target);
if(t_len>s_len)
{
return -1;
}
for(i=0;i
{
j=0;
int flag=1;
if(source[i]==target[j])
{
int k,p=i;
for(k=0;k {
if(source[p]==target[j])
{
p ;
j ;
continue;
}
else
{
flag=0;
break;
}
}
}
else
{
continue;
}
if(flag==1)
{
return i;
}
}
return -1;
}
函數指標有時是很有用的,例如在結構體中定義函數指標就可以在C語言中實作類似C 的類別成員函數的特性.
下面的程式定義了一個函數指標數組,根據輸入數字的餘數(1或0),不用if else就能呼叫對應的函數了.
// 輸入為奇數
void FuncOdd(int n)
{
float i, nIterator = 0;
printf("You entered an odd number.\n");
for (i = 1; i {
nIterator =1/i;
}
printf("And the result is: %f\n",nIterator);
}
// 輸入為偶數
void FuncEven(int n)
{
float i, nIterator = 0;
printf("You entered an even number;\n");
for (i = 2; i {
nIterator =1/i;
}
printf("And the result is: %f\n",nIterator);
}
int main()
{
int nInput = 0; // 存放輸入的數字
void (*func[2])(int); // 定義函數指針,指向兩個不同的函數
func[0] = FuncEven;
func[1] = FuncOdd;
printf("Please input a number:"); // 從控制台取得輸入
#scanf("%d",&nInput);
(*func[nInput%2])(nInput); // 根據輸入數字呼叫對應函數
return 0;
}
int top 應不屬於指標的範疇了,而是int的常用變數的定義,這個top要看是怎麼用法,如果按照負數,0,正數來使用的話,可以判斷它是用來做為這個類別的一個特殊的定義標識; 如果這個變數是一個循環裡面的的計數器的話(意思就是隨著循環的次數增多或者減少)就可以判斷這個循環成功的執行的多少次了
Reader是一個類別名,意思類別也是一種資料型別
就像整數int一樣是一個資料型別名稱
Reader read[Maxr];意思是定義了一個這樣類別的數組變量,Marxr 估計就是一個巨集定義好的一個數值
為什麼可以這樣定義呢,要為class可以包含任意的資料型別(和c裡面的struct一樣),也包含外部class
以上是用指標方式編寫C語言函數的實現的詳細內容。更多資訊請關注PHP中文網其他相關文章!