我有一个非常简单的功能,这给我带来了一些问题。我要做的就是在从字符串更改子字符串后返回一个子字符串。但是当我运行代码时,我遇到了分段错误。我的代码发生了什么:
#include <stdio.h>
#include <string.h>
const char *new_name(char str[])
{
char * pch;
char * last="";
char * pch2;
static char name[80];
printf ("Splitting string \"%s\" into tokens:\n",str);
pch = strtok (str,"/");
while (pch != NULL)
{
last=pch;
pch = strtok (NULL, "/");
}
pch2 = strtok (last,".");
strcpy(name, pch2);
strcat(name, ".ppm");
return name;
}
int main()
{
printf("New name: %s",new_name("/home/test/segmentation/test.pgm"));
return 0;
}
编辑:我还有一个问题:我想使用这个函数的返回作为另一个函数的输入,但它接受 char 并且返回的值是 const char。如何进行转换?