首先应该是 char * i = str;
其次应该是 * i = '%'。双引号是字符串,* i是字符,要用单引号
最后你没用return 语句。
根据上面的提示,你应该在函数内malloc分配字符串,将处理后的字符写入新字符串,然后return这个字符串
char * replacespaces(char *str)
{
char * s = (char*)malloc(sizeof(char)*3000);
int i=0,j=0;
while(str[i] != '\0')
{
if(str[i] != ' ')
s[j++] = str[i];
else
{
s[j++] = '%';
s[j++] = '2';
s[j++] = '0';
}
i++;
}
s[j] = '\0';
return s;
}
怎么是int * 应该是char*
而且你在原字符串操作“ ”是一个字符替换成三个字符,在你的代码中不就造成了覆盖原有字符了吗。
建议新开一个字符串,分配足量空间,把原字符串按规则添加到新字符串中,别忘了最后加\0