add a note on prefix matches with C strings
This commit is contained in:
parent
0b0c0a4de4
commit
b49f11657d
|
@ -13,6 +13,10 @@
|
|||
id = "01J4J4PAXRWZDP9PAZNGCQ9S3D"
|
||||
+ [featured]{.badge .blue} :page: haku - writing a little programming language for fun
|
||||
|
||||
% content.link = "programming/blog/cstring-starts-with"
|
||||
id = "01JCGAM56KS2C6D4XZ1MRATXH4"
|
||||
+ :page: prefix matches with C strings
|
||||
|
||||
% content.link = "programming/blog/buildsome"
|
||||
id = "01J7BYKQHZKYQ969T3PH3V8HF1"
|
||||
+ :page: not quite buildless
|
||||
|
|
17
content/programming/blog/cstring-starts-with.tree
Normal file
17
content/programming/blog/cstring-starts-with.tree
Normal file
|
@ -0,0 +1,17 @@
|
|||
%% title = "prefix matches with C strings"
|
||||
|
||||
% id = "01JCGAM55352EF247HZ358BAJ8"
|
||||
- one thing I realised while reading some code at work that worked with C strings: it's surprising how easy it is to match a prefix on a C string.
|
||||
|
||||
```c
|
||||
if (s != NULL
|
||||
&& s[0] == 'h'
|
||||
&& s[1] == 'u'
|
||||
&& s[2] == 'g')
|
||||
{
|
||||
// ...
|
||||
}
|
||||
```
|
||||
|
||||
% id = "01JCGAM5537WYE3GEN6WGX8WD0"
|
||||
- this works because of the NUL terminator---if it appears at any point in the string, the `s[i] == c` comparison will return `false`, thus breaking the `&&` chain---so indices always stay in-bounds!
|
Loading…
Reference in a new issue