c++ - 搜索字符串中的垃圾字符

标签 c++

friend

我想将以下代码集成到主应用程序代码中。使用 o/p 字符串填充的垃圾字符会转储应用程序 以下代码片段不起作用..

void stringCheck(char*);

int main()
{
    char some_str[] = "Common Application FE LBS Serverr is down";
    stringCheck(some_str);
}


void stringCheck(char * newString)
{
    for(int i=0;i<strlen(newString);i++)
    {
        if ((int)newString[i] >128)
        {

TRACE(" JUNK Characters in  Application Error message FROM DCE IS = "<<(char)newString[i]<<"++++++"<<(int)newString[i]);

        }
    }
}

有人可以告诉我在字符串中查找垃圾字符的更好方法吗?

非常感谢

最佳答案

您的char可能表示有符号。将其转换为 unsigned char 以避免在转换为 int 时变成负整数:

if ((unsigned char)newString[i] >128)

根据您的需要,isprint 可能会做得更好,检查可打印字符,包括空格:

if (!isprint((unsigned char)newString[i])) 
    ...

请注意,您必须转换为 unsigned char:isprint 的输入需要介于 0UCHAR_MAX 之间的值作为字符值。

关于c++ - 搜索字符串中的垃圾字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/617825/

相关文章:

c++ - 如何在一个字符串中搜索多个子字符串

c++ - GNU C 和 C++ 链接错误

c++ - 如果有对象被创建为另一个类的数据成员,如何将值传递给参数化的构造函数?

c++ - 是否可以在 C++17 的 GCC 中使用显式寄存器变量?

c++ - OpenCV 直方图匹配/规范

c++ - 如何在 __time32_t 中添加一年

c++ 11 - 实现 Promise 的示例程序不起作用

c++ - AES、128 和 256 无效 key 长度

c++ - VST C++ 嵌套类 - 构造和包含

c++ - 在 C++ 中调整卷文件的长度和宽度