作者: haloPaul 時間: 2019-1-14 15:36 標題: C語言寫一個近似strchr功能
- #include <stdio.h>
- int main() {
- char s[] = "I love cat and dog.";
- char c = 'a';
- char *p = s;
- int n = 0;
-
- printf("在"%s"當中搜尋'%c\'。\n", s, c);
- while (*p != '\0') {
- if (*p == c) {
- printf("出現在第%d個字元。\n", p-s+1);
- n++;
- }
- p++;
- }
- if (n == 0)
- printf("無符合字元。\n");
- else
- printf("全部總共搜尋到%d個字元。\n", n);
- return 0;
- }
我不太明白為何會是p-s+1呢,p-s+1是如何來的? 思考了很久還是弄不懂原理。
請C語言高手指點一二,謝謝!
作者: 燕飛 時間: 2019-1-14 16:15
人以1開始
C 以0開始
via HKEPC Reader for Android
作者: boy168 時間: 2019-1-14 16:49
用n已經可以.
char *p = s;
即係 char pointer p 指住 s[0] memory地址.
作者: chocostang 時間: 2019-1-15 10:23
array係由0開始計
作者: java2 時間: 2019-1-15 20:27
因為人看第n個係由1數起.
想想如果 char c='I' 就會明.
