jtwc 发表于 2022-3-8 14:24

各位老师,c语言中出错误,如何改呢?

本帖最后由 jtwc 于 2022-3-8 14:28 编辑

各位老师,c语言中出错误错误:"const char *"类型的实参与"char *类型的形参不兼容",如何改呢?谢谢了,源码如下:
char WindowTitle = { 0 };
int Pnum = 0, Cnum;
      Cnum++;
      ::GetWindowText(hWnd, WindowTitle, 100);
      for (Cnum = 0; Cnum < 100; Cnum++)
      {
                if (strcmp(WindowTitle, "好的"))
                {
                        //找到了
                        printf("找到了\n");
                        //找到后,跳出循环
                        break;
                }
       }

残夕若此 发表于 2022-3-8 14:40

强转下就可以了

DEATHTOUCH 发表于 2022-3-8 14:41

char WindowTitle = { 0 }; 这是个字符数组
strcmp(WindowTitle, "好的") 你这样用就是把字符传进去了,肯定不对

所以要搞二维的数组,比如 char WindowTitle;

无闻无问 发表于 2022-3-8 14:42

WindowTitle去掉

无闻无问 发表于 2022-3-8 15:00

声明为指针数组就行…

jtwc 发表于 2022-3-8 15:21

无闻无问 发表于 2022-3-8 14:42
WindowTitle去掉

谢谢老师,老师原意是在char WindowTitle = { 0 };这个数组中查找“好的”这个字符串,找到后,跳出循环,该如何写呢?

无闻无问 发表于 2022-3-8 15:54

没有明白你的意图,你用这个for是要做什么?感觉多余

Eaglecad 发表于 2022-3-8 15:54

最简单的是使用 strchr。也可以自己写。const char* strFind(const char* src, const char* sub)
{
        const char* bp;
        const char* sp;

        if (NULL == src || NULL == sub)
        {
                return NULL;
        }

        while (*src)
        {
                bp = src;
                sp = sub;
                do
                {
                        if (!*sp)
                                return src;
                } while (*bp++ == *sp++);
                src += 1;
        }

        return NULL;
}

无闻无问 发表于 2022-3-8 16:02

你是找窗口还是窗口标题或控件内容中是否含指定字符串,意图是什么?

jtwc 发表于 2022-3-8 16:02

Eaglecad 发表于 2022-3-8 15:54
最简单的是使用 strchr。也可以自己写。const char* strFind(const char* src, const...

谢谢老师
页: [1] 2
查看完整版本: 各位老师,c语言中出错误,如何改呢?