如何在Zig语言中按指定字符分割字符串并处理每个单词?
Zig语言的字符串分割实现
Zig标准库提供了字符串分割相关工具,但和Python默认split()的行为存在差异,以下是具体用法:
1. 严格按指定分隔符分割:std.strings.split
这个函数需要明确指定分隔符,会严格按照该分隔符切割字符串,遇到连续分隔符时会生成空字符串结果。示例代码:
const std = @import("std"); const print = std.debug.print; pub fn main() void { const str = "Hello world"; var iter = std.strings.split(u8, str, " "); while (iter.next()) |word| { print("{s}\n", .{word}); } }
2. 类似Python默认split()的空白分割:std.strings.tokenize
如果需要按任意空白字符(空格、制表符、换行等)分割,且自动忽略连续空白,使用tokenize更合适——它不会生成空分割结果,行为和Python默认的split()完全一致。示例代码:
const std = @import("std"); const print = std.debug.print; pub fn main() void { const str = "Hello world\tfoo\nbar"; var iter = std.strings.tokenize(u8, str, " \t\n"); while (iter.next()) |word| { print("{s}\n", .{word}); } }
内容的提问来源于stack exchange,提问作者Stanislav Nikolov
相关产品推荐
相关产品推荐

