#include <iostream>
using namespace std;
void delChar(char *str, char c)
{
int i,j=0;
for(i=0; *(str+i); i++)
{
if(*(str+i) != c)
{
str[j++] = str[i];
}
}
str[j] = '\0';
}
int main()
{
char str[] = "abcdefgh"; // 注意,此处不能写成char *str = "abcdefgh";
printf("%s\n", str);
delChar(str, 'd');
printf("%s\n", str);
return 0;
}
参考:http://zhidao.baidu.com/question/18928176
其中说到:字符数组,你可以对数组元素进行修改,而指针指向一个字符串常量,它是不可修改的(如果对其修改,这种行为是未定义的)。
编译运行都正常,结果也对,没有错误
参考:http://zhidao.baidu.com/question/122507151.html?fr=ala0
如何使用char* 的话,因为“asdasdas”是一个常量,在常量区存储,你不能修改他。如果使用char[]的话,是采用字符数组的形式存储的。是一个变量,比如类似于array[0]='a',这种形式,你自然可以修改的。