gpt4 book ai didi

c - 用 C 和 Win32 API 编程 : Comparing Strings

转载 作者:太空宇宙 更新时间:2023-11-04 00:41:41 27 4
gpt4 key购买 nike

我正在用 C 和 Windows API 编写程序。我正在使用 Visual Studio 2010 Express 并且字符集设置为“未设置”。我做了一个编辑控件来接受用户名。这是声明:

hwnduser = CreateWindow (TEXT("EDIT"), NULL, 
WS_VISIBLE | WS_CHILD | WS_BORDER,
220, 70, 80, 20,
hwnd, (HMENU) 3, NULL, NULL);

我正在将其值提取到名为用户名的字符串中。

len = GetWindowTextLength(hwnduser) + 1;
GetWindowText(hwnduser, username, len);

现在,有效的用户名在一个名为 c_user 的字符串中:

char c_user[] = "foo";

当我比较它们以检查用户是否使用以下代码输入了有效的用户名时,

if (username == c_user)
{
MessageBox(hwnd, "Foo", "Bar", MB_OK);
}
else
{
MessageBox(hwnd, "Bar", "Foo", MB_OK);
}

它从不验证。相反,总是执行 else 条件!我哪里出错了?

如何纠正这个问题?

我试过strcmp!但是,输出仍然没有改变。查看输出(和代码中的比较): enter image description here

最佳答案

C 和 C++ 没有内置的字符串类型,因此您不能以这种方式比较字符串。 C 和 C++ 使用字符数组,此语法只是比较每个数组的地址(不匹配)。

改为使用 strcmp()_tcscmp()

关于c - 用 C 和 Win32 API 编程 : Comparing Strings,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5667651/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com