Noa*_*ren 1 c pointers command-line-arguments
#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++;
}
}
Run Code Online (Sandbox Code Playgroud)
分配是计算单词中字母的数量,当我编译时没有任何错误,但是当我尝试运行它时根本不起作用
./cma_length noah bruh conner
Run Code Online (Sandbox Code Playgroud)
当我按下Enter键之后,一切都没有了。
四个问题:
strcompare char*<,而不是<=*str != '0'是错误的,您正在检查char是否为char 0,而不是转义字符,\0因此以这种方式检查此char*str != '\0'完成这些操作后,代码将如下所示:
#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 letterDex;
for (letterDex = 1; *str != '\0'; letterDex++){
str++;
}
return letterDex;
}
Run Code Online (Sandbox Code Playgroud)
另外index变量是无用的,所以我刚刚删除了它
| 归档时间: |
|
| 查看次数: |
46 次 |
| 最近记录: |