我正在学习C,并且正在努力学习如何迭代字符串数组.
我们只是说我定义一个数组,如下所示:
char* argv_custom[] = {"--debug", "--verbose", "--test", "--ultimate"};
Run Code Online (Sandbox Code Playgroud)
现在,我将如何确定argv_custom中的字符串数量?(例如argc_custom)
我是否在第一时间采取正确的方式?此外,是否可以做以下事情:
伪代码
if ('--debug' in argv_custom) { // do stuff }
Run Code Online (Sandbox Code Playgroud)
Oli*_*rth 10
现在,我将如何确定argv_custom中的字符串数量?
该规范的方法:
int argc_custom = sizeof(argv_custom) / sizeof(argv_custom[0]);
Run Code Online (Sandbox Code Playgroud)
注意:这仅适用于数组本身,只要有指针(例如,如果传递argv_custom给函数),它就不再起作用:
char **p = argv_custom;
int argc_custom = sizeof(p) / sizeof(p[0]); // No me gusta
Run Code Online (Sandbox Code Playgroud)
是否可以做以下事情:......
没有捷径.你必须迭代每个字符串,然后做strcmp.当然,您可以(并且可能应该)将此行为包装到函数中.