[英]Weird strstr behaviour
我正在嘗試在字符串中找到子字符串的位置。
#include <string.h>
#include <stdio.h>
void find_str(char const* str, char const* substr)
{
char* pos = strstr(str, substr);
if(pos) {
printf("found the string '%s' in '%s' at position: %d\n", substr, str, pos - str);
} else {
printf("the string '%s' was not found in '%s'\n", substr, str);
}
}
int main(int argc, char* argv[])
{
char* str = "gdeasegrfdtyguhıjohhıhugfydsasdrfgthyjkjhghh";
find_str(str, "hh");
find_str("dhenhheme kekekeke hhtttttttttttttttttttttttttttttttttttttttthhtttttttttttt", "hh");
return 0;
}
輸出:
在'gdeasegrfdtyguhıjohhıhugfydsasdrfgthyjkjhghh'中找到了字符串'hh',位置:19
在'dhenhheme kekekeke hhttttttttttttttttttttttttttttttttttttttttttttttttthtttttttttttttt'中找到字符串'hh',位置:4
在第一個例子中,它表示它處於第19位。但是它不應該說是18嗎? 因為在第二個例子中它表示4.它從子串的開頭開始。
我糊塗了。
字符'ı'
不是ASCII字符,因此它可能占用兩個字節。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.