zhilenkov Asked:2022-02-20 12:56:15 +0000 UTC2022-02-20 12:56:15 +0000 UTC 2022-02-20 12:56:15 +0000 UTC 如何在 C 中解析包含“Hello.txt”的名称和扩展名的字符串? 772 您需要将字符串解析为“Hello.txt”类型的C,分为“Hello”和“txt”。有没有这方面的 C 工具? c 2 个回答 Voted Best Answer Harry 2022-02-20T14:40:04Z2022-02-20T14:40:04Z 没有什么可写的... char filename[] = "Hello, world.txt"; char name[100] = {0}, ext[100] = {0}; char * dot = strrchr(filename,'.'); if (dot) { strcpy(ext,dot+1); *dot = 0; } strcpy(name,filename); printf("Name: \"%s\", ext: \"%s\"\n",name,ext); neon1ks 2022-02-20T14:25:03Z2022-02-20T14:25:03Z 对于标记化任务,推荐使用strtok_r(POSIX) 或strtok_s(MSVC) 函数。还有一个非线程安全的函数strtok。 #include <stdio.h> #include <string.h> int main(int argc, char **argv) { char input[] = "Hello.txt"; const char *delim = "."; char *token; char *next_token; token = strtok_r(input, delim, &next_token); while(token) { puts(token); token = strtok_r(NULL, delim, &next_token); } return 0; } 另外,我推荐阅读本书 Ben Clemens - The C Language in the 21st Century,第 199 页,一首关于 strtok 的歌曲。
没有什么可写的...
对于标记化任务,推荐使用
strtok_r
(POSIX) 或strtok_s
(MSVC) 函数。还有一个非线程安全的函数strtok
。另外,我推荐阅读本书 Ben Clemens - The C Language in the 21st Century,第 199 页,一首关于 strtok 的歌曲。