字串解析(C庫(3) strstr實現)

2021-08-18 15:12:01 字數 1008 閱讀 1224

strstr(str1,str2)函式用於判斷字串str2是否是str1的子串。如果是,則該函式返回str2在str1中首次出現的位址;否則,返回null。

專案需用到有效字串提取功能,即是strstr函式的功能。一開始的時候,並未聯想到strstr函式,所以用c/c++實現了此功能,程式直接呼叫strstr函式也能正確實現。下面是實現過程。

實現方法1:借助streln和memcmp函式

char *con_strstr(const

char *str1, const

char *str2)

return null;

}

如果不借助c庫的strlen和memcpy函式,也可以自行實現兩個函式。strlen函式實現在之前文章已經實現。memcmp函式原型為memcmp(const void *buf1, const void *buf2, unsigned int count),功能是比較buf1和buf2前count個位元組的內容。當buf1buf2時,返回值大於0。memcmp函式可以這樣實現。

int con_memcmp(const void *buf1, const void *buf2, unsigned int

count)

return (p1 - p2);

}

將上述**中的strlen和memcmp函式替換為con_strlen和con_memcmp即可。

實現方法2:不借助第三方函式

char *con_strstr(const

char *str1, const

char *str2)

} i = temp; //注意i在while中有改變,新一輪for迴圈,i需從上一次迴圈開始。

} return

null;

}

Arduino構建與解析Json字串例項

示例 json目前在網路通訊中已經是一種非常常見的資料格式了,arduinojson庫的作用就是為了在arduino中輕鬆實現對json字串的解析和構建。加下來將介紹arduinojson的基本功能 解析例項 構建例項。arduinojson 全稱 arduinojson c json librar...

C 字元與字串的解析

型別舉例 1.puts 輸出 字串 並 自動換行,但該函式只能輸出字串。puts 雖然簡潔但也僅限於輸出字串,但還是沒有 printf 牛哈。2.gets 從標準輸入裝置讀字串函式,其可以無限讀取,不會判斷上限,以回車結束讀取 3.putchar putchar函式只bai能用於單個字元的輸出,且一...

Engine 字串(C 實訓題)

輸入形式 輸入包含多組資料。每組資料首先有一行包含乙個整數n 1 n 1000 表示 的數目,n 0表示輸入結束。每組 的資訊第一行是 的標題,由字母 大小寫均可 和空格組成,不超過10個詞,每個詞不超過20個字元,標題總共不超過250個字元。第二行是乙個整數k 0 k 108 表示它被引用的次數。...