我是 C 的新手,我尝试制作一个程序,在运行程序时计算作为参数给出的句子中的单词。一个单词是一个或多个字符,由以下任一字符分隔:' '
、或。示例:='\n'
','
'.'
./words abc abc
2 words
但我不断收到:“ segementation fault(core dumped)
”。以下是代码:
int main(char **argv)
{
char buf[80];
sprintf(buf,"%d words\n",words(argv));
write(1,buf,strlen(buf));
return 0;
}
int words(char **argv)
{
int i=0, sum=0;
while(argv[i] != '\0')
{
if(argv[i] == '.' || argv[i] == ',' || argv[i] == ' ' || argv[i] == '\n')
sum++;
i++;
}
}