我无法想出一个表达式,它会在最后一次斜杠后让我获得字符串的一部分.
让我说我有 argv[1] = "HIsomething:01/02/03.file";
如何让sscanf只存储最后一次斜线后写的内容?(本例中为"03.file")?斜杠的数量不固定.
我知道如果我写的话
char string [100];
sscanf(argv[1], "HIsomething:%99[^\n]", string);
Run Code Online (Sandbox Code Playgroud)
我可能会将"01/02/03.file"存储在字符串中.
我不能只是手动输入它,因为参数可能不同,我需要一个通用的解决方案,只需在最后一次斜线后获取所有内容.
不要使用sscanf(),使用strrchr(3)
strrchr()函数返回指向字符串s中最后一次出现的字符c的指针.
char *str;
str = strrchr(argv[1], '/');
if (str != NULL) {
str++; /* step over the slash */
}
Run Code Online (Sandbox Code Playgroud)
注:所产生的价值str将是要么NULL或将指向到您的argv[1]字符串.此时,如果你真的需要一个副本(也许是要修改),你可以使用strdup(3)
| 归档时间: |
|
| 查看次数: |
431 次 |
| 最近记录: |