劳驾各位帮忙看看这个字符串比较什么意思?

来源:百度知道 编辑:UC知道 时间:2024/05/18 08:18:31
char *modefileName = NULL;
if (strcmp(modefileName, "-") == 0)
……
这个什么意思?
"-"代表什么?
非常感谢!
我是百思不得其解
谢谢大家!我觉得也应该这么理解的,可是联系程序上下文,觉得不太对劲。把部分程序贴过来:
<br> char *modefileName = NULL;
<br>/* Open mode control file */
<br> if (strcmp(modefileName, "-") == 0) {
<br> file_modes = stdin;
<br> }
<br> else if ((file_modes = fopen (modefileName, "rt")) == NULL)
<br> {
<br> fprintf (stderr, "Error opening mode control file %s !!\n",
<br> modefileName);
<br> exit (1);
<br> }
<br> fprintf (stderr, " Mode control file: %s\n", modefileName);
<br>modefile代表以文件名,应该不可能是'-'.
<br>另外,char *modefileName = NULL定义的modefile是字符串指针,
<br>可是,file_modes = fopen (m

strcmp比较两个字符串大小,也就是字典顺序
"-"表示一个字符串,现在要比较 modefileName指向的字符串是不是"-"
strcmp( const char *string1, const char *string2 )的返回值如下:
< 0 string1 less than string2
0 string1 identical to string2
> 0 string1 greater than string2

如果modefileName是"-",则进入if语句

首先说一下strcmp这个函数
strcmp(char *s1,char * s2);
功能:比较字符串s1和s2。
说明:
当s1<s2时,返回值<0
当s1=s2时,返回值=0
当s1>s2时,返回值>0

这个就是 如果 "modefileName"这个字符和"-"这个字符是否相等 就....