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
的输入需要介于 0
和 UCHAR_MAX
之间的值作为字符值。
关于c++ - 搜索字符串中的垃圾字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/617825/