gpt4 book ai didi

c - 在 C 中使用 scanf 拆分字符串

转载 作者:太空宇宙 更新时间:2023-11-04 03:50:52 24 4
gpt4 key购买 nike

我有一个包含 # 和 !贯穿其中的符号。我的任务是将这些符号之间的所有内容分离成新的字符串。我不知道会有多少个符号。

我可以使用scanf函数将它们分成字符串吗

我是这样想的:

输入字符串:dawddwamars#dawdjiawjd!fjejafi!djiajoa#jdawijd#

字符 s1[20], s2[20], s3[20], s4[20], s5[20];

scanf("%s[^!][^#]%s[^!][^#]%s[^!][^#]%s[^!][^#]%s[^ !][^#]", s1, s2, s3, s4, s5);

这行得通吗?或者有人有更好的方法。我需要将字符串分成子字符串,因为我必须在这些新字符串中搜索最长的公共(public)子字符串。

最佳答案

为了帮助您开始,这里有一些非灵活的代码,涉及您将从输入字符串(字符串数组)中获取的子字符串数量。如前所述,使用 strsep()(因为 strtok() 已被它废弃,请参阅 man strtok)。

#include <stdio.h>
#include <string.h>

int main() {
char* str;
char* token;
char* temp;
char strings[10][20];
int i = 0;
str = strdup("dawddwamars#dawdjiawjd!fjejafi!djiajoa#jdawijd#");

printf("%s\n", str);
while ((token = strsep(&str, "#")) != NULL) {
temp = strdup(token);
while ((token = strsep(&temp, "!")) != NULL) {
printf("%s\n", token);
strcpy(strings[i], token);
i++;
}
}
}

关于c - 在 C 中使用 scanf 拆分字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20647028/

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