如何从另一个字符串中删除最后一次出现的字符串?
假设我必须从另一个字符串中删除一个字符串的最后一次出现。我该怎么办呢?
详细说明,我在 ac 字符串中有一个文件名( gchar* 或 char* )
C:\SomeDir\SomeFolder\MyFile.pdf
并且我想删除扩展名 .pdf ,并将其更改为其他内容,例如 .txt > 或 .png 。最省事又高效、方便、跨平台的方法是什么?谢谢。
注意:我知道在 C++ 中这是一件非常简单的事情,但对于这个项目,我绝对必须使用 C 而不是其他语言。 (学术要求)
注2:虽然你可以建议其他第三方库,但我目前只能访问C标准库和GLib。
注解3:我用“C”标签搜索了类似的问题,但似乎找不到。
Say I have to remove the last occurrence of a string from another string. How would I go about it?
To elaborate, I have a file name in a c string (gchar* or char* )
C:\SomeDir\SomeFolder\MyFile.pdf
and I want to remove the extension .pdf , and change it to something else, e.g .txt or .png . What is the least troublesome yet efficient , convenient and cross-platform way to do it? Thanks.
note: I know this is an extremely simple thing to do in C++ but for this project , I absolutely MUST use C and no other language. (academic requirement)
note 2: Although you can suggest other third-party library , I currently only have access to the C standard library and the GLib.
note 3: I have searched for similar questions with the "C" tag, but can't seem to find any.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
我通常会使用“splitpath”函数来分隔完整路径名的所有四个部分(dir、path、name、ext)。
此致
奥利弗
I would normally use the "splitpath" function to seperate all four parts of a full path name (dir, path, name, ext).
Best regards
Oliver
只需用“strrchr”函数修改上面的“strtok”代码
Just modifying the above 'strtok' code with 'strrchr' function
看看基本名称。
have a look at basename.