在字符串中搜索垃圾字符

时间:2009-03-06 06:26:49

标签: c++

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

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]);

        }
    }
}

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

非常感谢

1 个答案:

答案 0 :(得分:5)

您的char可能代表已签名。将其转换为unsigned char,以避免在转换为int时变为负整数:

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

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

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

请注意,您必须转为unsigned charisprint的输入要求0UCHAR_MAX之间的值作为字符值。