Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/68.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_String - Fatal编程技术网

比较C中的字符串

比较C中的字符串,c,string,C,String,} 如果我输入相同的字符串两次,此代码将打印为true。但事实并非如此。如何解决此问题?要比较字符串,可以使用strcmp,它是在中定义的 array1和array2是指向字符串开头的指针。因此,此代码array1==array2比较指针而不是字符串。要比较字符串,可以使用strcmp,它是在中定义的 array1和array2是指向字符串开头的指针。因此,这段代码array1==array2比较的是指针,而不是字符串。这里比较的是两个指针。您需要strncmparray1,array2,50=

}


如果我输入相同的字符串两次,此代码将打印为true。但事实并非如此。如何解决此问题?

要比较字符串,可以使用strcmp,它是在中定义的


array1和array2是指向字符串开头的指针。因此,此代码array1==array2比较指针而不是字符串。

要比较字符串,可以使用strcmp,它是在中定义的


array1和array2是指向字符串开头的指针。因此,这段代码array1==array2比较的是指针,而不是字符串。

这里比较的是两个指针。您需要strncmparray1,array2,50==0

您正在比较两个指针。如果需要strncmparray1、array2、50==0,则应使用strcmp或strncmp

例如:

int result=strncmpstring1,string2,compareLimit;,其中compareLimit是要比较的字符数

结果将通知您是否等于0,或者string1是否大于或小于string2。

您应该使用strcmp或strncmp

例如:

int result=strncmpstring1,string2,compareLimit;,其中compareLimit是要比较的字符数


结果将通知您等于0,或者string1是否大于或小于string2。

这取决于您所说的相同的含义。您想要完全相同的字节序列,还是依赖于语言环境的比较


第一个由strcmp处理,第二个调用strcoll。两者都在。这取决于你所说的相同的意思。您想要完全相同的字节序列,还是依赖于语言环境的比较

第一个由strcmp处理,第二个调用strcoll。这两个都在。像使用strcmp一样使用strcmp

您的比较数组1==array2正在比较地址,因此不起作用。

请像使用strcmp一样使用strcmp


比较数组1==array2正在比较地址,因此不起作用。

您正在将两个指针与数组的内存位置进行比较

您可以使用strcmp:

或者更详细地说,您需要比较数组中每个条目的值:

if (strcmp(str1,str2) == 0) {
    printf("they match!");
}

您正在将这两个指针与数组的内存位置进行比较

您可以使用strcmp:

或者更详细地说,您需要比较数组中每个条目的值:

if (strcmp(str1,str2) == 0) {
    printf("they match!");
}

数组是指针。您的==比较地址位置,而不是字符elements@Micka:否,数组不是指针。请阅读本手册第6节。array1==array2进行指针比较是正确的,但这只是因为数组表达式已转换为指针。请使用该函数。这个链接是C++的,但是在C.@ EvEnthDunL:为什么是STRNCMP而不是STRCMP?昨天我用strncmp比较了一些字符串。我弄糊涂了。更适合这种情况。数组是指针。您的==比较地址位置,而不是字符elements@Micka:否,数组不是指针。请阅读本手册第6节。array1==array2进行指针比较是正确的,但这只是因为数组表达式已转换为指针。请使用该函数。这个链接是C++的,但是在C.@ EvEnthDunL:为什么是STRNCMP而不是STRCMP?昨天我用strncmp比较了一些字符串。我弄糊涂了。更适合这种情况。如果strcmparray、array2!=0更清晰。如果strcmparray、array2!=0更清晰。
if (strcmp(str1,str2) == 0) {
    printf("they match!");
}
int i;
int match = 1;
for (i = 0; i < 50; i++) {
    if (array1[i] != array2[i]) {
        match = 0;
        break;
    }
}
if (match == 1) {
    printf("They match");
} else {
    printf("They do not match");
}