我必须编写一个加密/解密C程序,开始时它需要6个CL参数。通常,这对我来说很好,但这一次参数顺序不必紧要。这些标志还始终与参数类型匹配。例如。 -t永远是csv文件之前。
例如,以下是运行程序的所有等效方法,并且将产生相同的行为:
./encrypt -t mappingfile.csv -m 1 -i words.txt
./encrypt -m 2 -i words.txt -t mappingfile.csv
./encrypt -m 1 -i words_to_encrypt.txt -t mappingfile.csv
我不确定该如何检查,任何信息都可以帮助您!谢谢!
答案 0 :(得分:1)
如果您不想使用其他库,而是希望自己处理所有内容,则需要运行循环以处理所需的参数。
通常,如果您确定某个值将在参数后出现,则可以执行以下操作:
for( int i; i < argc; i++ ){
if( [ argument is equal to some tag ] ){
[ handle argument at args[i+1] ]
i++; // Skip the next arg
} else if ( [ argument is equal to next tag ] ) {
} // Use for any additional tags you need
}
您可以在处理参数之前添加检查,以确保i+1
不通过args数组的边界。要检查参数是否相等,可以使用<string.h>
函数strcmp()
或编写自己的函数。
处理参数可能很简单,例如将字符串复制到其他char[]
数组中,甚至还可以记住所需参数的索引。这一切都取决于您要如何使用它。
像这样遍历标签意味着您不需要它们以任何特定顺序排列。
---希望我的第一个SA回答还不错:)