读书人

C++去除字符串符号有关问题

发布时间: 2013-09-28 10:01:20 作者: rapoo

C++去除字符串符号问题

char *str = "青年杂志(上半年)";

int i, j;
for (i = j = 0; str[i] != '\0'; i++)
{
if (!ispunct(str[i]))
{
str[j++] = str[i];
}
}
str[j] = '\0';
cout<<str<<end

想去除括号,这种方法怎么不对?请教?谁有更好、更快的办法? c++ 字符串
[解决办法]

char *str = "青年杂志(上半年)";
//字符串常量,不能修改它的值的,只是可读的空间
//ispunct函数是判断非空格、非数字和非英文字母而已,还有其他的

[解决办法]
在ANSI C标准中禁止对string literal作出修改。K&R C中对这一问题的说明是,试图修改字符串常量的行为是未定义的。

读书人网 >C++

热点推荐