#include <stdio.h>
void squeeze(char s[], int c)
{
int i, j;
for(i = j = 0; s[i]!= '\0'; i++)
{
if (s[i] != c)
{
s[j++] = s[i];
}
}
s[j] = '\0';
printf("%s\n", s);
}
int main(void)
{
squeeze("asfafsdfsaaaasdfsd", 'a');
}
我在mac中运行此程序,看起来问题来自于该行: s [j ++] = s [i]
但我不知道为什么。
谢谢!
答案 0 :(得分:1)
因为字符串文字是只读的。要制作可写的字符数组,请尝试使用
int main( void )
{
char array[] = "asfafsdfsaaaasdfsd";
squeeze( array, 'a' );
}