- 论坛徽章:
- 0
|
目的: 把/aa/bb/cc/dd/file_name这种形式的字符串去掉结尾的file_name, 变为/aa/bb/cc/dd/的形式(要保留最后的/)
代码:
char *full_path = "/aa/bb/cc/dd/file_name";
char path[100];
char *ch;
strcpy(path, full_path);
ch = strrchr(path, '/');
*ch++ = '\0';
printf("%s\n", path);
exit(EXIT_SUCCESS); |
但是,最后的输出是/aa/bb/cc/dd,但如果把其中的
*ch++ = '\0';
改为:
ch ++;
*ch = '\0';
结果输出的就是/aa/bb/cc/dd/。
这两种表达方式有什么不同吗?
另:改为
*(ch++) = '\0';
结果与未加括号相同。
环境:
FreeBSD-7.0-i386-Release
gcc: gcc version 4.2.1 20070719 [FreeBSD]
[ 本帖最后由 guzhou 于 2008-5-22 09:08 编辑 ] |
|