我想使用 memset 从字符串中删除一些字符
I want to use memset to remove some characters from string
我使用 memset()
从 path
字符串中删除 text.txt
,但下面的代码不起作用。
请让我知道问题是什么。
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, '[=10=]', strlen(path) - minus);
printf("%s", path);
return 0;
这里的问题是,path
指向一个字符串文字,它通常存在于只读内存中。您不能更改其中的内容。
相反,尝试使用像
这样的数组
char path[ ] = "tt/tt/tt/text.txt";
我使用 memset()
从 path
字符串中删除 text.txt
,但下面的代码不起作用。
请让我知道问题是什么。
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, '[=10=]', strlen(path) - minus);
printf("%s", path);
return 0;
这里的问题是,path
指向一个字符串文字,它通常存在于只读内存中。您不能更改其中的内容。
相反,尝试使用像
这样的数组char path[ ] = "tt/tt/tt/text.txt";