gpt4 book ai didi

C - 如何使用函数 strcmp() 比较扩展字符序列?

转载 作者:行者123 更新时间:2023-11-30 14:47:58 25 4
gpt4 key购买 nike

我需要比较字符串是否等于文本文件中的以下扩展字符序列:“———”(ALT + 0151代码重复三次)。如何使用函数 strcmp() 来做到这一点?

一段示例文本文件 (TSV):

皮拉西卡巴大道。 Armando Salles de Oliveira Lado par 13400-005 Centro皮拉西卡巴电视台阿戈斯蒂尼奥·弗拉松 ——— 13400-008 Centro皮拉西卡巴大道Armando Salles de Oliveira Lado ímpar 13400-010 Centro

当我读取文件并打印时,该字段在监视器上显示“ùùù”。

结构:

typedef struct {
char cidade[50];
char tipoLogradouro[20];
char logradouro[50];
char trecho[30];
char cep[10];
char bairro[50];
} Endereco;

测试在“switch case”内,程序在这部分崩溃:

case 3:
{
if(strcmp(token, "———") == 0) // Change to "ùùù" and fails too.
strcpy(registro[i].trecho, NULL);
else
strcpy(registro[i].trecho, token);
break;
}

非常感谢。

最佳答案

通常在 C 中,您只能在带引号的字符串中使用 7 位 ASCII,因此对于高位 ASCII,您需要使用\x 转义序列和字符的十六进制代码。因此,在您的情况下,您可以输入:“\x97\x97\x97”,因为 97 是十进制 151 的十六进制。

case 3:
{
if(strcmp(token, "\x97\x97\x97") == 0)
strcpy(registro[i].trecho, NULL);
else
strcpy(registro[i].trecho, token);
break;
}

关于C - 如何使用函数 strcmp() 比较扩展字符序列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50844066/

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