C 即使字符串为null,也无法获取返回0
您好,我对返回值有问题,即使str、text或两者都为null,程序也会返回1C 即使字符串为null,也无法获取返回0,c,string,null,C,String,Null,您好,我对返回值有问题,即使str、text或两者都为null,程序也会返回1 int prefix ( char *str , char *text ) { int len = strlen (text); if (str == NULL) return 0; else if (text == NULL ) return 0; else { for (int i=0 ; i<=
int prefix ( char *str , char *text ) {
int len = strlen (text);
if (str == NULL)
return 0;
else if (text == NULL )
return 0;
else {
for (int i=0 ; i<=len-1 ; i++) {
if (text[i]==str[i])
printf (" %d char equal \n",i);
else return 0;
}
return 1 ;
}
}
int main () {
int result = prefix ("","");
printf ("%d\n",result);
}
int前缀(char*str,char*text){
int len=strlen(文本);
如果(str==NULL)
返回0;
else if(text==NULL)
返回0;
否则{
对于(int i=0;i首先,字符串“”不同于字符串NULL。“”是一个带有单个'\0'字符的字符*,NULL是零
这里的问题是,当您传递空字符串时,两个检查被传递,然后for循环将永远不会执行,因为字符串没有任何字符(0首先,字符串“”不同于字符串NULL。“”是一个带有单个'\0'字符的字符*,NULL什么都不是
这里的问题是,当您传递空字符串时,两个检查被传递,然后for循环将永远不会执行,因为字符串没有任何字符(0首先,字符串“”不同于字符串NULL。“”是一个带有单个'\0'字符的字符*,NULL什么都不是
这里的问题是,当您传递空字符串时,两个检查被传递,然后for循环将永远不会执行,因为字符串没有任何字符(0首先,字符串“”不同于字符串NULL。“”是一个带有单个'\0'字符的字符*,NULL什么都不是
这里的问题是,当您传递空字符串时,这两个检查被传递,然后for循环将永远不会执行,因为字符串没有任何字符(0“
不是NULL
它是空字符串。您还应该在strlen
as之前检查NULL
。”
不是NULL
它是空字符串。您还必须在strlen
as之前检查NULL
。“
不是NULL
它是空字符串。您还必须在strlen
as之前检查NULL
。”
不是NULL
它是空字符串。您还必须在strlen
as之前检查NULL
。for(int i=0;ifor(int i=0;ifor(int i=0;ifor)(int i=0;i