我想在字符指針上找到strchr
的第一個匹配項後又多出2個字符。該字符串可以是這樣的:前進指針並在strchr後獲得2個字符C
foo;bar;2012 -> should output foo;b
foo;caz; -> should output foo;c
foo; -> should output foo (there are no +2 chars)
foo -> null
對於第一種情況,我想我可以這樣做,
#include <stdio.h>
#include <string.h>
int main()
{
char str[] = "foo;bar;2012";
char *pch = NULL;
if ((pch=strchr(str,';')) != NULL) {
*pch++;
*pch++;
*pch = '\0';
}
puts(str);
return 0;
}
但是,什麼是檢查,如果我能在字符串中前進的指針沒有的正確方法過去?
如果您需要處理超過2個字符,或它們的任意號碼,然後使用strlen(STR)來獲取長度。之後,你可以用str + len創建一個結束指針來與pch進行比較,或者你可以通過pch-str找到你的索引來與len進行比較。然後你減去找到字符串末尾有多少個字符。 –
@ZanLynx謝謝,很高興知道這一點。 –
嘗試更改每個'* pch ++;'到'if(* pch)pch ++;' – Dmitri