【问题标题】:find a char array in another char array in c在c中的另一个char数组中找到一个char数组
【发布时间】:2012-01-23 15:20:56
【问题描述】:
#include <iostream>
using namespace std;
int main ()
{
    char name[10];
    cin>>name;
    char str[] = "Thomas";
    char * pch;
    pch=strchr(name,str);
    if (pch!=NULL) {
        cout<<"Foud"<<endl;
    }

    return 0;
}

你好,为什么我不能在 strchr 函数中使用 2 个变量,如果你知道如何在字符串中搜索单词

【问题讨论】:

  • 您是否考虑过您可能正在寻找适合该工作的错误工具?
  • 当它主要使用 C 做事方式时,为什么它被标记为 C++?要么使用std::string,要么删除 cout 并使用 C,但不要尝试丑陋的混合

标签: c++ strchr


【解决方案1】:

使用strstr

#include <iostream>
using namespace std;
int main ()
{
    char name[10];
    cin>>name;
    char str[] = "Thomas";
    char * pch;
    pch=strstr(name,str);
    if (pch!=NULL) {
        cout<<"Found"<<endl;
    }

    return 0;
}

【讨论】:

    【解决方案2】:

    strchr 的第二个参数是一个字符,表示为一个 int。它将在字符串中找到该字符的第一个实例。

    char *strchr(const char *s, int c);
    

    如果要在字符串中查找子字符串,请使用 strstr,

    char *strstr(const char *haystack, const char *needle);
    

    strstr 将指向第一个子字符串,如果未找到,则为 NULL。

    【讨论】:

      【解决方案3】:

      strchr 用于Locate first occurrence of character in stringstrstr 用于Locate substring。请参阅参考资料:

      所以,你的程序应该是这样的:

      #include <iostream>
      
      using namespace std;
      
      int main ()
      {
          char name[10];
          cin>>name;
          char str[] = "Thomas";
          char *pch = strstr(name,str);
          if (pch != NULL) {
              cout<<"Found"<<endl;
          }
      
          return 0;
      }
      

      【讨论】:

        猜你喜欢
        • 2016-03-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多