#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//指向指標的指標的應用
int main()
{
//設計一個函式:void find1(char array[], char search, char *pa)
//要求:這個函式引數中的陣列 array 是以 0 值為結束的字串,要求在字串
//array 中查找字符是引數 search 里的字符。如果找到,函式通過第三個引數(pa)
//回傳值為 array 字串中第一個找到的字符的地址。如果沒找到,則為pa 為 0。
void find1(char array[], char search, char **q);
char array[] = "abcdefghijklmnopqrstuvwxy";
char search;
char *p;
char c = '!';
char *pc;
pc = &c;
printf("請輸入你想查找順序的字符:");
scanf("%c", &search);
find1(array, search, &p);
printf("%c", *p);
return 0;
}
void find1(char array[], char search, char **q) //**p是指向指標的指標,存放的是指標的地址,*q是一個指標,這個指標是賣弄函式中的p
{
int i;
for (i = 0; *(array + i) != 0; i++)
{
if (search == *(array + i))
{
*q = array + i;
break;
}
else if (*(array + i) == 0)
{
*q = 0; //有點小小的問題,就是在查找不是陣列中的元素的時候,在黑視窗上會沒有輸出
}
}
}
這一段代碼是我參照一本電子書寫的,然后這里面有一些問題就是:上面紅色的注釋
輸出結果如下:

我現在希望在我查找的字符不是陣列中的字符時,我能輸出一個!之類的
uj5u.com熱心網友回復:
把printf(“%c”, *p);
改成
printf(“%c”, (*p==0?c:*p));
因為*p=0不是一個可以顯示的字符,所以當*p==0是就列印c變數,因為c變數的值就是‘!’
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/245436.html
標籤:C語言
上一篇:資料結構課程設計(C語言)
下一篇:怎么修改檔案里的資訊啊?
