C -错误:下标值既不是数组,也不是指针或向量

C -错误:下标值既不是数组,也不是指针或向量,c,C,我必须找出其中有某种特征的单词的数量,我从论点中得到的。我必须用一般的投入来工作。我做了一个函数,但它不起作用。我不知道如何正确处理参数 void function(char *argv) { char x; int c,i; x = argv[1][0] ; i = 0; while((c = getchar()) != EOF) { if(c == x) ++i; } printf("%d \n",i); } 假设ar

我必须找出其中有某种特征的单词的数量,我从论点中得到的。我必须用一般的投入来工作。我做了一个函数,但它不起作用。我不知道如何正确处理参数

void function(char *argv) {
   char x;
   int c,i;
   x = argv[1][0] ;
   i = 0;
   while((c = getchar()) != EOF) {
      if(c == x)
         ++i;
   }
   printf("%d \n",i);
}

假设
argv
与传递给
main
的内容相同,则函数声明不正确:需要

void function(char *argv[]) {
    ... //              ↑↑
}
现在,您可以将
argv
视为具有两个下标运算符的字符数组

当然,由于除了第一个参数的第一个字符外,您没有使用任何
argv
部分,因此您最好接受一个
char
,并让调用方决定它将是哪一个`char:

void function(char x) {
    ...
}
...
int main(int argc, char *argv[]) {
    ... // Check argc...
    function(argv[1][0]);
}

假设
argv
与传递给
main
的内容相同,则函数声明不正确:需要

void function(char *argv[]) {
    ... //              ↑↑
}
现在,您可以将
argv
视为具有两个下标运算符的字符数组

当然,由于除了第一个参数的第一个字符外,您没有使用任何
argv
部分,因此您最好接受一个
char
,并让调用方决定它将是哪一个`char:

void function(char x) {
    ...
}
...
int main(int argc, char *argv[]) {
    ... // Check argc...
    function(argv[1][0]);
}

假设
argv
与传递给
main
的内容相同,则函数声明不正确:需要

void function(char *argv[]) {
    ... //              ↑↑
}
现在,您可以将
argv
视为具有两个下标运算符的字符数组

当然,由于除了第一个参数的第一个字符外,您没有使用任何
argv
部分,因此您最好接受一个
char
,并让调用方决定它将是哪一个`char:

void function(char x) {
    ...
}
...
int main(int argc, char *argv[]) {
    ... // Check argc...
    function(argv[1][0]);
}

假设
argv
与传递给
main
的内容相同,则函数声明不正确:需要

void function(char *argv[]) {
    ... //              ↑↑
}
现在,您可以将
argv
视为具有两个下标运算符的字符数组

当然,由于除了第一个参数的第一个字符外,您没有使用任何
argv
部分,因此您最好接受一个
char
,并让调用方决定它将是哪一个`char:

void function(char x) {
    ...
}
...
int main(int argc, char *argv[]) {
    ... // Check argc...
    function(argv[1][0]);
}


我就是喜欢这个↑...@用户2975913不客气!看一下编辑,通过传递单个
char
可以让您在
main
中保留命令行属性,而不会将其“溢出”到其他函数中。我很喜欢这一点↑...@用户2975913不客气!看一下编辑,通过传递单个
char
可以让您在
main
中保留命令行属性,而不会将其“溢出”到其他函数中。我很喜欢这一点↑...@用户2975913不客气!看一下编辑,通过传递单个
char
可以让您在
main
中保留命令行属性,而不会将其“溢出”到其他函数中。我很喜欢这一点↑...@用户2975913不客气!查看编辑,通过传递单个
char
可以在
main
中保留带有命令行属性的工作,而不会“溢出”到其他函数中。您会遇到哪些错误?它们有助于找出问题所在。你需要阅读一本初级C语言书并加以注意。由于这是一个练习,我将尝试引导你找到答案。
x=argv[1][0]
这是不正确的,
argV
应该是一个一维字符数组,但这里介绍的是如何处理二维数组。你的问题之一是,试着一行一行地修改你的代码,并准确地理解你在做什么。这是一个初学者级别的问题,但绝对不是一个“gimmecodez”:在寻求帮助之前,你需要付出一些真正的努力。投票重新开放。你会犯什么错误?它们有助于找出问题所在。你需要阅读一本初级C语言书并加以注意。由于这是一个练习,我将尝试引导你找到答案。
x=argv[1][0]
这是不正确的,
argV
应该是一个一维字符数组,但这里介绍的是如何处理二维数组。你的问题之一是,试着一行一行地修改你的代码,并准确地理解你在做什么。这是一个初学者级别的问题,但绝对不是一个“gimmecodez”:在寻求帮助之前,你需要付出一些真正的努力。投票重新开放。你会犯什么错误?它们有助于找出问题所在。你需要阅读一本初级C语言书并加以注意。由于这是一个练习,我将尝试引导你找到答案。
x=argv[1][0]
这是不正确的,
argV
应该是一个一维字符数组,但这里介绍的是如何处理二维数组。你的问题之一是,试着一行一行地修改你的代码,并准确地理解你在做什么。这是一个初学者级别的问题,但绝对不是一个“gimmecodez”:在寻求帮助之前,你需要付出一些真正的努力。投票重新开放。你会犯什么错误?它们有助于找出问题所在。你需要阅读一本初级C语言书并加以注意。由于这是一个练习,我将尝试引导你找到答案。
x=argv[1][0]
这是不正确的,
argV
应该是一个一维字符数组,但这里介绍的是如何处理二维数组。你的问题之一是,试着一行一行地修改你的代码,并准确地理解你在做什么。这是一个初学者级别的问题,但绝对不是一个“gimmecodez”:在寻求帮助之前,你需要付出一些真正的努力。投票重新开放。