gpt4 book ai didi

c - 比较字符串和包含土耳其字符的用户输入时,strcmp 函数不起作用

转载 作者:行者123 更新时间:2023-11-30 16:49:32 29 4
gpt4 key购买 nike

char *x="Çankırı";
char *y=malloc(sizeof(char)*25);
scanf("%s",y);

if(strcmp(x,y) == 0)
printf("A");
else
printf("%s",y);

我为 y 输入“Çankırı”,但其他部分运行。如何比较这些字符串?

Windows10,代码块。

编辑:我发现了一条线索。问题与 setlocale 函数有关。当我使用 setlocale(LC_ALL,"TURKISH") 时,其中一个字符串无法正常工作(输出不是 Çankırı, Ank2r2),如果我使用 setlocale(LC_ALL,"C"),则另一个字符串无法正常工作。我不知道如何解决它。

最佳答案

您可能需要使用接受“宽”字符的函数。例如:

#include <wchar.h>
wchar_t *x=L"Çankırı";
wchar_t y[25];
wscanf(L"%s",y);

if(wcscmp(x,y) == 0)
wprintf(L"A");
else
wprintf(L"%s",y);

关于c - 比较字符串和包含土耳其字符的用户输入时,strcmp 函数不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42542177/

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