删除字符串中指定位置的字符
int delet(char* a, int n) {
int len = strlen(a);
if (a[n] != '\0') {
for (int i = n - 1; i < len; i++) {
*(a + i) = *(a + i + 1);
}
*(a + len) = '\0';
return *(a + n - 1);
}
else
return 0;
}
int main()
{
char *s="(abc))a(ac)";
delet(s, 1);
printf("%s",s );
}
在调用的时候发生了这样的报错
请问这是什么原因导致的,以及应该怎么解决呢
char *s="(abc))a(ac)"; 这是个常量字符串,是不可以修改字符串内容的
改为
char s[] = "(abc))a(ac)";