为什么下面不能用来删除字符串中的所有空格

[复制链接]
查看11 | 回复2 | 2011-3-13 10:41:50 | 显示全部楼层 |阅读模式
void fun(char *str)
{

int i,n=strlen(str);

char *p=str;

for(i=0;in;)

{

if(*p!=\' \')

str=*p;

p;

}

str=\'\\0\';
}
回复

使用道具 举报

千问 | 2011-3-13 10:41:50 | 显示全部楼层
<pre id=\"best-answer-content\" class=\"reply-text mb10\">因为字符串 和字符串数组 是有点区别的
比如说 char str[8] = \"qwe asd\"; 这个时候你可以用 str[0] = \'c\';来进行赋值
而 char str = “qwe asd” ;这个时候你可以调用str[0]进行输出,但是str[0] = \'c\';这样的赋值是非法的,会有未指定入口的错误提示所以你的 str=*p;这里会运行不下去,因为你传进函数的是字符串,而不是字符串数组
我这样写的,你看看跟你原来的想法有什么不同
#includestdio.h
#includestring.h
#includeiostream.h
#includemath.h
void fun(char *str);

int main()
{
char str[8]=\"a bcd\";
fun(str);
coutstrendl;
return 0;
}
void fun(char *str)
{

int i, n=strlen(str);
coutnendl;

char *p=str;
for(i=0;in;)

{

if(*p!=\' \')

str = *p;

p;

}

str=\'\\0\';
}
回复

使用道具 举报

千问 | 2011-3-13 10:41:50 | 显示全部楼层
<pre class=\"replyask-text\" id=\"content-1310764\">为什么不可以用str=*p;
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行