我正在编写一个程序,我使用strtok来查找我在命令行中键入的字符串中的每个单词,在我的示例中,我的代码名为command.c,所以当我输入:
./command.out "Hi, there"
我应该得到我的结果:
Arg = "Hi, there"
Next word "Hi,"
Next word "there"
到目前为止,我的代码将完成print语句的arg部分,但是为了分离有问题的字符串,不会使用执行后一部分,我的代码目前如下:
#include <stdio.h>
#include <string.h>
void main (int argc, char *argv[]) {
int i;
for(i =1;i< argc; i++)
printf("Arg = %s\n", argv[i]);
char delims[] = " ";
char *word = NULL;
word = strtok(argv[i], delims);
while(word != NULL) {
printf("Next word \"%s\"\n", word);
word = strtok(NULL, delims);
}
}
我哪里出错了,如何修复此代码?感谢所有帮助
答案 0 :(得分:7)
您错过了for
区块周围的花括号:
for(i =1;i< argc; i++)
{
printf /* ... and so forth */
}
答案 1 :(得分:0)
您的代码缩进错误,这可能会导致您的问题。
'for'语句只影响下一行printf,因此变量'i'后来增加到值'2',然后当你要求argv [i]时,你要求argv [2] ,你应该打电话给argv [1]。