gpt4 book ai didi

C - 当一半格式不确定时我可以使用 sscanf 吗?

转载 作者:行者123 更新时间:2023-12-01 16:52:08 25 4
gpt4 key购买 nike

我最近才开始学习 C,所以不要以为我什么都懂...

假设我有这样一个字符串

"XXX YYY ZZZ An uncertain string"

我想像这样解析成 4 个变量:

[XXX] [YYY] [ZZZ] [An uncertain string]

保证前三个值以空格分隔存在,但 An 之后的所有值都将具有不确定数量的空格。

我已经可以了:

sscanf(string, "%s %s %s", one, two, three);

要捕获前 3 个值,但有没有办法使用 sscanf 捕获最后一位,或者我是否需要使用 strtok 做一些棘手的事情?

最佳答案

是的,你的意思是你想捕获3个用空格分隔的字符串,然后是其余的

if (sscanf(string, "%s%s%s%[^\n]", one, two, three, four) != 4) {
fprintf(stderr, "The string `%s' doesn't match the format\n");
}

最好小心缓冲区溢出

char one[100];
char two[100];
char three[100];
char four[100];

if (sscanf(string, "%99s%99s%99s%99[^\n]", one, two, three, four) != 4) {
fprintf(stderr, "The string `%s' doesn't match the format\n");
}

关于C - 当一半格式不确定时我可以使用 sscanf 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39339997/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com