这里只有一个简单的问题:我有一个char ** argv[],它保存了我的所有参数……在其中一个参数中,我取得一个以 % 开头的整数。
例如:
bg %2
我只想要这个整数……有没有简单的方法获取它?
这是为了作业,所以如果有人能给我指点方向,我愿意做更多的挖掘。
谢谢
这里只有一个简单的问题:我有一个char ** argv[],它保存了我的所有参数……在其中一个参数中,我取得一个以 % 开头的整数。
例如:
bg %2
我只想要这个整数……有没有简单的方法获取它?
这是为了作业,所以如果有人能给我指点方向,我愿意做更多的挖掘。
谢谢
char** argv[]
中拥有一个char*
,则可以这样做:std::string tempString(argv[the one with the %]);
int position = tempString.find_first_of('%');
int = atoi(tempString.substr(position, tempString.size()-position).c_str());
简要说明:第一行将char*
转换为std::string
,第二行获取%
的位置,第三行获取数字的子字符串(假设它在char*
的末尾),将其转换回char*
并通过atoi
传递以获取int
。
希望这能帮到您。
这里有一种使用atoi
的方法:
for (int i = 0 ; i != argc ; i++) {
if (argv[i][0] == '%') {
int num = atoi(&argv[i][1]);
printf("Got a number: %d\n", num);
}
}
argv
将在不同的索引处包含“bg”和“%2”。 - Sergey Kalinichenko
argv[n]+1
(然后将其转换为int
,再传递给类似于atoi
或(更好的选择)strtol
的函数)。 - Jerry Coffin