C 如何通过使用和创建函数来计算命令行参数中的字符数

C 如何通过使用和创建函数来计算命令行参数中的字符数,c,command-line-arguments,argv,strlen,C,Command Line Arguments,Argv,Strlen,我很难理解如何创建一个函数来计算命令行参数中的字符数。它只需要在“my_strlen()”函数中计算结果,但需要在main()中打印结果。 我对C非常陌生,但这里是我迄今为止的代码 int my_strlen( char string[]); { strcpy(string, argv[1]; return 1; } int main(int argc, char *argv[]) { if(argv != 2) { printf("You must run

我很难理解如何创建一个函数来计算命令行参数中的字符数。它只需要在“my_strlen()”函数中计算结果,但需要在main()中打印结果。 我对C非常陌生,但这里是我迄今为止的代码

int my_strlen(  char string[]);
{
     strcpy(string, argv[1];
     return 1;
}
int main(int argc, char *argv[])
{
  if(argv != 2)
  {
    printf("You must run this program with an argument\n");
    return 2;
  }
  printf("%d", strlen(string);
  return 0;
}
如您所见,我非常困惑,我也不知道如何存储strlen(string)的值,以便稍后将其作为自己的整数调用。

试试这个简单的代码

#include <stdio.h>
#include <string.h>
int my_strlen(char *string) //Function to calculate length of given string
{
    int i;
    for(i=0;string[i]!='\0';i++);
    return i;
}
int main(int argc, char *argv[])
{
  int length;
  if(argc != 2) //Check the number of command line arguments
  {
    printf("You must run this program with an argument\n");
    return 2;
  }
  else
  {
    length = my_strlen(argv[1]); //Your function to calculate length of string
    printf("Length of command line argument is: %d\n", length);
  }
  return 0;
}
#包括
#包括
int my_strlen(char*string)//用于计算给定字符串长度的函数
{
int i;
for(i=0;字符串[i]!='\0';i++);
返回i;
}
int main(int argc,char*argv[])
{
整数长度;
if(argc!=2)//检查命令行参数的数量
{
printf(“必须使用参数\n运行此程序”);
返回2;
}
其他的
{
length=my_strlen(argv[1]);//计算字符串长度的函数
printf(“命令行参数的长度为:%d\n”,长度);
}
返回0;
}
试试这个简单的代码

#include <stdio.h>
#include <string.h>
int my_strlen(char *string) //Function to calculate length of given string
{
    int i;
    for(i=0;string[i]!='\0';i++);
    return i;
}
int main(int argc, char *argv[])
{
  int length;
  if(argc != 2) //Check the number of command line arguments
  {
    printf("You must run this program with an argument\n");
    return 2;
  }
  else
  {
    length = my_strlen(argv[1]); //Your function to calculate length of string
    printf("Length of command line argument is: %d\n", length);
  }
  return 0;
}
#包括
#包括
int my_strlen(char*string)//用于计算给定字符串长度的函数
{
int i;
for(i=0;字符串[i]!='\0';i++);
返回i;
}
int main(int argc,char*argv[])
{
整数长度;
if(argc!=2)//检查命令行参数的数量
{
printf(“必须使用参数\n运行此程序”);
返回2;
}
其他的
{
length=my_strlen(argv[1]);//计算字符串长度的函数
printf(“命令行参数的长度为:%d\n”,长度);
}
返回0;
}

其中是
string
main()
中,您应该使用
strlen(argv[1])。代码中还有其他几个错误:
if(argv!=2)
应该是
if(argc!=2)
并且没有按名称命名的库函数
strcopy
,我猜它被称为
strcpy
@CodyGray C ommand L L L argument。但是这个问题仍然很令人困惑。同样对于
if(argv!=2)
你的意思是
argc
不是
argv
?@CodyGray:OP试图构建自己的缩写,这是命令行参数,你有一些范围问题要开始——当它在其他函数中定义时,你主要使用
string
,并且
argv[1]
仅在main中声明时在其他函数中。尝试将
argv[1]
传递给函数,该函数依次计算字符数组的长度。在
main()
中的
string
中,应使用
strlen(argv[1])。代码中还有其他几个错误:
if(argv!=2)
应该是
if(argc!=2)
并且没有按名称命名的库函数
strcopy
,我猜它被称为
strcpy
@CodyGray C ommand L L L argument。但是这个问题仍然很令人困惑。同样对于
if(argv!=2)
你的意思是
argc
不是
argv
?@CodyGray:OP试图构建自己的缩写,这是命令行参数,你有一些范围问题要开始——当它在其他函数中定义时,你主要使用
string
,并且
argv[1]
仅在main中声明时在其他函数中。尝试将
argv[1]
传递给函数,该函数反过来计算字符数组的长度。谢谢,我想我基本上理解了这是如何工作的。但是我对
string[I]
的工作原理有点困惑?
string[I]
将在
I
th位置为您提供
string
中的字符。谢谢,我想我基本上理解了它的工作原理。但是我对
string[I]
的工作原理有点困惑?
string[I]
将在
I
th位置为您提供
string
中的字符。