Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C语言中密码中的字符数_C_Arrays_Numbers_Character - Fatal编程技术网

C语言中密码中的字符数

C语言中密码中的字符数,c,arrays,numbers,character,C,Arrays,Numbers,Character,我想用C编写一个代码,其中声明了密码的字符数,但我不知道为什么在使用以下算法后,我得到了奇怪的答案 #包括 #包括 #包括 int main() { int n=1,i=0; 字符*通过[100]; printf(“输入您的通行证:”); scanf(“%c”、&pass); 对于(i=0;通过[i]!='0';i++){ n++; } printf(“字符数:%d\n”,n); 返回0; } 以char*pass[100]开头可能不是您想要的,尽管它可能会起作用。您只需要charpass[

我想用C编写一个代码,其中声明了密码的字符数,但我不知道为什么在使用以下算法后,我得到了奇怪的答案


#包括
#包括
#包括
int main()
{
int n=1,i=0;
字符*通过[100];
printf(“输入您的通行证:”);
scanf(“%c”、&pass);
对于(i=0;通过[i]!='0';i++){
n++;
}
printf(“字符数:%d\n”,n);
返回0;
}


char*pass[100]
开头可能不是您想要的,尽管它可能会起作用。您只需要
charpass[100]

其次,您要求
scanf
使用
%c
选项扫描单个字符。要读取整个字符串,请使用
%s
选项

最后一行:

对于(i=0;通过[i]!='0';i++){


'0'
并不意味着null,它指的是字符0,即ascii图表上的48。您可能正在寻找
'\0'
,它意味着null。null用于终止字符串。

char*pass[100]开头可能不是您想要的,尽管它可能工作。您只需要
char pass[100]

其次,您要求
scanf
使用
%c
选项扫描单个字符。要读取整个字符串,请使用
%s
选项

最后一行:

对于(i=0;通过[i]!='0';i++){


'0'
不表示null,它指的是字符0,即ascii图表上的48。您可能正在寻找
'\0'
这表示null。null用于终止字符串。

您所说的
char*pass[100]是什么意思;
什么是“奇怪的答案”?请编辑您的帖子。我想添加一个假设密码作为数组。当我运行此代码并输入字符串时,会出现非常不相关的答案。例如,当我键入Hi时,它显示638作为字符数。按char*pass[100];我指的是一个名为pass的数组,有100个位置。看起来您试图声明一个指向字符数组的字符串指针。您可以尝试char pass[100],而不是char*pass[100];甚至可以使用char pass[100]=“abc”初始化pass数组;或类似的内容。scanf格式字符串中的
%c
只使用一个字符。
%c
的参数应该是指向存储字符代码点的
int
的指针。您所说的
字符*传递[100]是什么意思;
什么是“奇怪的答案”?请编辑您的帖子。我想添加一个假设密码作为数组。当我运行此代码并输入字符串时,会出现非常不相关的答案。例如,当我键入Hi时,它显示638作为字符数。按char*pass[100];我指的是一个名为pass的数组,有100个位置。看起来您试图声明一个指向字符数组的字符串指针。您可以尝试char pass[100],而不是char*pass[100];甚至可以使用char pass[100]=“abc”初始化pass数组;或类似的内容。scanf格式字符串中的
%c
仅使用一个字符。
%c
的参数应该是指向将存储字符代码点的
int
的指针。
 #include <stdio.h>
 #include <stdlib.h>
 #include<string.h>

 int main()
 {
   int n=1,i=0;
   char * pass[100];

   printf("Enter your pass: ");
   scanf(" %c",&pass);

   for (i=0; pass[i]!='0';i++){
       n++;
   }

   printf("number of characters: %d\n", n);

   return 0;
}