例题——权限的修改
在 Linux 操作系统中文件的权限可以通过 rwx 的方式来表示,r 表示可读,w 表示可写,x 表示可执行。
在操作系统实现这个功能时,采用的方式是按位存储的。当我们不给任何权限时,存储表现为三个二进制位 0,如果可读则第一位会变成 1、如果可写则第二位会变成 1、如果可执行则第三位会变成 1。
要求
在这题中,我们会得到文件当前的权限和希望添加或删除的权限(如果已经对存在/不存在的权限添加/删除则不做改变)。你需要输出最终改变后的权限的十进制描述。
输入格式
输入第一行是当前的文件权限,用 r、w、x 的字母中的一个或多个来表示(r,w,x 不会重复)。之后每一行会以 + 或 - 开头;如果以 + 开头,则表示添加一个权限,如果 - 开头,则表示删除一个权限。
输出格式
将修改后的权限以十进制数字的方式输出出来。
样例
输入1
rw
+x
输出1
7
输入2
w
+x
+r
-w
输出2
5
代码
#include <stdio.h>
#include <string.h>
int main() {
int permission = 0;//初始化权限为000
char current_permissions[3]