在 c 中计算数组时得到错误的答案
Getting wrong answer when counting array in c
#include <stdio.h>
#include <stdlib.h>
int countArrayChars(char *strArray[]){
int i=0;
while (strArray[i] != '[=10=]'){
i++;
}
printf("%d\n", i);
return i;
}
int main(int argc, const char * argv[]) {
char *dog[] = {"dog"};
countArrayChars(dog);
出于某种原因,它打印“5”。
它不应该打印 3 吗?
我什至试图在 "g".
之后放置 \0
请试试这个
#include <stdio.h>
#include <stdlib.h>
int countArrayChars(char *strArray){
int i=0;
while (strArray[i] != '[=10=]'){
i++;
}
printf("%d\n", i);
return i;
}
int main(int argc, const char * argv[]) {
char *dog[] = "dog";
countArrayChars(dog);
}
您声明字符串数组并使用 dog
初始化它。
char *dog[] = {"dog"};
实际表示为
dog[0] = "Dog"; //In your case only element index with 0.
...............
...............
dog[n] = "tiger"; //If there Have n+1 element
因此您的数组大小为 1。其中包含常量字符串 dog
。要访问它,您应该使用 dog[0]
.
因此,无需进行少量修改,您就可以将代码用作:
int countArrayChars(char *strArray[])
{
int i=0;
while (strArray[0][i] != '[=12=]')
{
i++;
}
printf("%d\n", i);
return i;
}
int main(int argc, const char * argv[])
{
char *dog[] = {"dog"};
countArrayChars(dog);
}
或者如果你想声明一个字符串使用
char *dog = "dog";
或
char dog[] = "dog";
#include <stdio.h>
#include <stdlib.h>
int countArrayChars(char *strArray[]){
int i=0;
while (strArray[i] != '[=10=]'){
i++;
}
printf("%d\n", i);
return i;
}
int main(int argc, const char * argv[]) {
char *dog[] = {"dog"};
countArrayChars(dog);
出于某种原因,它打印“5”。
它不应该打印 3 吗? 我什至试图在 "g".
之后放置 \0请试试这个
#include <stdio.h>
#include <stdlib.h>
int countArrayChars(char *strArray){
int i=0;
while (strArray[i] != '[=10=]'){
i++;
}
printf("%d\n", i);
return i;
}
int main(int argc, const char * argv[]) {
char *dog[] = "dog";
countArrayChars(dog);
}
您声明字符串数组并使用 dog
初始化它。
char *dog[] = {"dog"};
实际表示为
dog[0] = "Dog"; //In your case only element index with 0.
...............
...............
dog[n] = "tiger"; //If there Have n+1 element
因此您的数组大小为 1。其中包含常量字符串 dog
。要访问它,您应该使用 dog[0]
.
因此,无需进行少量修改,您就可以将代码用作:
int countArrayChars(char *strArray[])
{
int i=0;
while (strArray[0][i] != '[=12=]')
{
i++;
}
printf("%d\n", i);
return i;
}
int main(int argc, const char * argv[])
{
char *dog[] = {"dog"};
countArrayChars(dog);
}
或者如果你想声明一个字符串使用
char *dog = "dog";
或
char dog[] = "dog";