首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何获取特定字符后的所有文本?

如何获取特定字符后的所有文本?
EN

Stack Overflow用户
提问于 2011-10-04 17:11:19
回答 6查看 111关注 0票数 1

我写了一个小程序,如果参数没有传递,它会打印帮助信息。

如果我运行应用程序时不带参数

代码语言:javascript
运行
复制
./myApp 

它打印出来

代码语言:javascript
运行
复制
./myApp --filename=file

我知道argv1包含第一个参数,但我不知道如何获取"=“后的文本,即文件名。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-10-04 17:15:42

您应该使用getopt()getopt_long(),而不是手动解析字符串。

他们为你做那些肮脏的工作,按照人们期望的方式行事(虽然自写的解析器有时会让人感到困惑--一些人使用--arg value,另一些人使用--arg=value,有些人甚至使用-arg value)

票数 2
EN

Stack Overflow用户

发布于 2011-10-04 17:14:12

你必须自己解析它。strtok对此非常有用,另一个是strstr。还有一些现成的库可以让你将这个功能导入到你的项目中,如果你不想自己写的话,比如this one

票数 0
EN

Stack Overflow用户

发布于 2011-10-04 17:14:48

strchr()返回一个指向字符的指针。接下来的字符就是你想要的

代码语言:javascript
运行
复制
char *equals;
equals = strchr(argv[1], '=');
if (equals) {
    printf("Rest of argument: %s\n", equals + 1);
} else {
    printf("No equal found in argv[1] (%s)\n", argv[1]);
}

根据您的特定需求,您可能希望将它们复制到某个地方,或者直接从argv1参数中使用它们。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7645610

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档