【问题标题】:What does an if statement check if a char pointer is put insideif 语句检查是否将 char 指针放入其中
【发布时间】:2019-09-21 21:01:39
【问题描述】:

我在 geeksforgeeks 上找到了解释 strstr() 功能的代码。此代码显示 if (p),但 p 是 char*。这实际上是在检查什么?

int main() 
{ 
    // Take any two strings 
    char s1[] = "GeeksforGeeks"; 
    char s2[] = "for"; 
    char* p; 

    // Find first occurence of s2 in s1 
    p = strstr(s1, s2); 

    // Prints the result 
    if (p) { 
        printf("String found\n"); 
        printf("First occurrence of string '%s' in '%s' is '%s'", s2, s1, p); 
    } else
        printf("String not found\n"); 

    return 0; 
}

【问题讨论】:

  • 和if (p != 0)一样,基本上是对if (p != NULL)的检查,也就是说strstr返回了一个结果。

标签: c string pointers


【解决方案1】:

strstr 在 s1 中搜索 s2。如果存在,则 p 不为 null 且包含 s2 的开头地址,并打印出“String found”。否则打印出“String not”

【讨论】:

  • 如果没有找到模式,strstr() 会返回 null 吗?
  • 没错,并打印出“找不到字符串”
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-02
  • 1970-01-01
  • 2021-05-07
相关资源
最近更新 更多