Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/63.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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 即使字符串为null,也无法获取返回0_C_String_Null - Fatal编程技术网

C 即使字符串为null,也无法获取返回0

C 即使字符串为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<=

您好,我对返回值有问题,即使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<=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;i
for(int i=0;i
for(int i=0;i
for)(int i=0;i