回覆列表
  • 1 # lanfengz3

    從 str[] 長字串裡 找 substr[] 目標字串,短字串 出現的個數。

    for(i = 0;str[i];i++) // 依次從 第 i 個位置 開始 找。

    for(j=i,k=0;substr[k]==str[j];k++,j++)

    // j 是 str 裡的字元位置,j=i+0,i+1,i+2 ....

    // k 是 substr 裡的字元位置, k=0,1,2,...

    這句 j 迴圈 是 從 j=i+0 開始找起,只要 substr[k]==str[j] 就往下比較,

    迴圈體 if(substr[k+1]=="\0"){ break; }

    如果substr[] 裡,下一個字元 是 字串結束符,表示 目標字串已迴圈找到尾巴了,也就是 找到了。於是 break -- 結束本次 迴圈。結束前 num++ 就是統計 直到目前為止,一共找到了 幾個 目標字串。

    -------

    你可以用

    char str[]="abc123abc"; char substr[]="abc";

    去呼叫, 新增一些中間列印,看看是如何迴圈和比較的。

  • 中秋節和大豐收的關聯?
  • 將十進位制187轉換成二進位制?