Showing posts with label C++. Show all posts
Showing posts with label C++. Show all posts

[C]Locate character in string (Memo)

Returns a pointer to the first occurrence in str1 of any of the characters that are part of str2, or a null pointer if there are no matches.

The search does not include the terminating null-characters.

Return Value
A pointer to the first occurrence in str1 of any of the characters that are part of str2, or a null pointer if none of the characters of str2 is found in str1 before the terminating null-character.
If none of the characters of str2 is present in str1, a null pointer is returned.

Reference:strpbrk()

[C]快速判斷字串是否為空字串

寫法很簡單,就像下列寫法:
if(*szStr)
{
  ....
}

因為*szStr == szStr[0],且char[]是以NULL-Terminate來判定字串是否結束,所以只要判定陣列的第一個值是不是為零,就可知道是否為空字串。
如需檢查是否為空字串則在指標前面加上NOT operator即可。

相同的方法也可以應用在其他的陣列結尾檢查,例如:
for ( int i = 0 ; arrVar[i] ; i++ )
{
    ....
}
 


按照Jacob的說法,只要在陣列的結尾塞個0,或是NULL,當迴圈跑到false或是NULL的時候,就會自動結束,這樣也就減少了 n個 if檢查。

[C] String Copy

while (*s++ = *t++);

1. *s = *t
2. *s+=1 and *t+=1
3. *t == NULL ||  -> Exit
     *t != NULL     -> do 1

_SplitPath

C:\abc\123.txt => Drive = C:, Path = \abc\, FileName = 123, Extension = .txt
C:\abc\123.12.txt => Drive = C:, Path = \abc\, FileName = 123.12, Extension = .txt
C:\abc\123.txt.12 => Drive = C:, Path = \abc\, FileName = 123.txt, Extension = .12
\\192.168.1.1\abc\123.txt => Drive = "", Path = \\192.168.1.1\abc\, FileName = 123, Extension = .txt

Build docker image from multiple build contexts

Build docker image from multiple build contexts ...