【问题标题】:How to count the number of characters in a command line argument by using and creating a function如何通过使用和创建函数来计算命令行参数中的字符数
【发布时间】:2014-10-24 02:12:06
【问题描述】:

我无法理解如何创建一个函数来计算命令行参数中的字符数。它只需要在“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) 的值以便以后将其作为自己的整数调用。

【问题讨论】:

  • stringmain() 中的位置,您应该使用strlen(argv[1]);。并且代码中还有其他几个错误:if(argv != 2) 应该是if(argc != 2) 并且没有名称为strcopy 的库函数,它被称为strcpy
  • @CodyGray C ommand L ine A 参数,我猜。但是这个问题仍然很令人困惑。
  • 还有if(argv != 2),你的意思是argc不是argv
  • @CodyGray : OP 试图构建他自己的缩写,它是命令行参数
  • 好吧,你有一些范围问题要开始——当它在另一个函数中定义时,你在 main 中使用 string,当它只在 main 中声明时,在另一个函数中使用 argv[1]。尝试将argv[1] 传递给函数,该函数依次计算字符数组的长度。

标签: c command-line-arguments argv strlen


【解决方案1】:

试试这个简单的代码。

#include <stdio.h>
#include <string.h>

/* Function to calculate length of given string */
int my_strlen(char *input_string)
{
    /* Loop through all the characters in the string till null-terminator */
    int i;
    for(i=0; input_string[i] != '\0'; i++);
    return i;
}

int main(int argc, char *argv[])
{
  int length = -1;
  if(argc != 2) /* Check the number of command line arguments */
  {
    printf("You must run this program with an argument\n");
    return 2;
  }
  else
  {
    /* Your function to calculate length of the string */
    length = my_strlen(argv[1]); 
    printf("Length of command line argument is: %d\n", length);
  }
  return 0;
}

这里
argv[0] 是程序名称。
argv[1] 是程序的参数。

【讨论】:

  • 谢谢,我想我主要了解它是如何工作的。但我对string[i] 的工作原理有点困惑?
  • string[i] 将在ith 位置为您提供string 中的角色。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多