#include <stdio.h>
int strcompare (char*);
int main (int argc, char *argv[])
{
int argIndex;
for(argIndex = 1; argIndex <= argc; argIndex++)
{
strcompare(argv[argIndex]);
printf("%s has %d letters in it\n", argv[argIndex], strcompare(argv[argIndex]));
}
return 0;
}
int strcompare (char *str)
{
int index, letterDex = 0;
for (index = 0; *str != '0'; index++)
{
letterDex++;
}
}
分配是计算单词中字母的数量,当我编译时没有任何错误,但是当我尝试运行它时根本不起作用
./cma_length noah bruh conner
当我按下Enter键之后,一切都没有了。
它看起来不像要编译的代码。函数strcompare应该返回一个int,在上面的实现中它不返回任何东西。我假设有一个退货letterDex; 在函数末尾,但是在此处复制代码时丢失了它。
在strcompare函数的for循环中,您正在将* str与'0'进行比较。我认为现在有两件事是错误的:
您正在将* str与'0'进行比较,但是您没有更改指针值。因此,您一直都在比较第一个字符与“ 0”。您应该做str [index]!='0',或者不使用索引递增指针。
我认为您想寻找的是'\ 0'而不是'0'。'\ 0'是一个空终止符,表示字符串的结尾。
您什么都没看到的原因是因为您陷入了无限循环。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句