# Writing end-of-string to a buffer

**URL:** <https://ziggit.dev/t/writing-end-of-string-to-a-buffer/18311>\
**Category:** Help\
**Tags:** language\
**Created:** [November 11, 2026, 2:44pm UTC](https://ziggit.dev/t/writing-end-of-string-to-a-buffer/18311 "2026-11-11T14:44:25Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![simplelikemike](https://ziggit.dev/letter_avatar_proxy/v4/letter/s/ba8739/32.png) [@simplelikemike](https://ziggit.dev/u/simplelikemike)\
**Post date:** [November 11, 2026, 2:44pm UTC](https://ziggit.dev/t/writing-end-of-string-to-a-buffer/18311/1 "2026-11-11T14:44:25Z")

</div>

Hi Folks,

I have the following code:

```zig
const std = @import("std");
const mem = std.mem;
const testing = std.testing;

test "endofstring" {
    const buffer: []u8 = try testing.allocator.alloc(u8,16);
    defer testing.allocator.free(buffer);

    buffer[0] = 'F';
    buffer[1] = 'O';
    buffer[2] = 'O';

    try testing.expectEqualStrings("FOO", buffer);
}

```

The output of the test is:  
====== expected this output: =========  
FOO␃

======== instead found this: =========  
FOO�������������␃

======================================

How can I add the end-of-string after “FOO” instead of at the end of the allocated buffer (without using something like std.Io.Writer).

---

<div class="post-metadata">

**Author:** ![matklad](https://ziggit.dev/user_avatar/ziggit.dev/matklad/32/2462_2.png) [@matklad](https://ziggit.dev/u/matklad)\
**Post date:** [November 11, 2026, 2:49pm UTC](https://ziggit.dev/t/writing-end-of-string-to-a-buffer/18311/2 "2026-11-11T14:49:23Z")

</div>

In Zig, a string is a pair of a pointer and a length, there’s no end-of-string character. So you need something like this:

```zig
const foo: []u8 = buffer[0..3];
foo[0] = 'F';
foo[1] = 'O';
foo[2] = 'O';

try testing.expectEqualStrings("FOO", foo);

```

`@sizeOf([]u8)` is `2 * @sizeOf(usize)`.

---

<div class="post-metadata">

**Author:** ![simplelikemike](https://ziggit.dev/letter_avatar_proxy/v4/letter/s/ba8739/32.png) [@simplelikemike](https://ziggit.dev/u/simplelikemike)\
**Post date:** [November 11, 2026, 2:58pm UTC](https://ziggit.dev/t/writing-end-of-string-to-a-buffer/18311/3 "2026-11-11T14:58:48Z")

</div>

Got it. So taking a slice set’s the length and where the string ends.
