我想使用memset从字符串中删除一些字符

时间:2015-05-23 13:14:26

标签: c arrays string pointers memset

我使用memset()text.txt字符串中删除path,但以下代码无效。

请告诉我这是什么问题。

char *path = "tt/tt/tt/text.txt";
char *direc = "";
int minus = 0;
int i;

for (i = strlen(path) - 1; i > 0; i--)
{ 
    if (path[i] == '/')
        break;
    else
        minus++;
}
memset(path + i, '\0', strlen(path) - minus);

printf("%s", path);

return 0;

1 个答案:

答案 0 :(得分:2)

这里的问题是,path指向字符串文字,它通常出现在只读内存中。你不能改变它的内容。

相反,请尝试使用类似

的数组
char path[ ] = "tt/tt/tt/text.txt";