如何在c中使用偏移量函数截断字符串?
我想用函数截断字符串。如何在c中使用偏移量函数截断字符串?,c,C,我想用函数截断字符串。 我得到错误:main.c:7:error:levalue预期值 我做错了什么 char *stringtest; int main() { &stringtest=strtrunk("hello world!", 3); printf("%s", &stringtest); return 0; } char *strtrunk(char *string, int offset) { int stringlen = s
我得到错误:main.c:7:error:levalue预期值 我做错了什么
char *stringtest;
int main()
{
&stringtest=strtrunk("hello world!", 3);
printf("%s", &stringtest);
return 0;
}
char *strtrunk(char *string, int offset)
{
int stringlen = strlen(string);
string[stringlen - offset] = 0;
return string;
}
函数
strtrunk
返回一个char*
并且stringtest
已经是char*
类型。所以使用
stringtest=strtrunk("hello world!", 3);
而不是
&stringtest=strtrunk("hello world!", 3);
printf("%s", &stringtest);
%s
需要一个char*
作为其参数,并且由于stringtest
已经是一个char*
,请使用
printf("%s", stringtest);
而不是
&stringtest=strtrunk("hello world!", 3);
printf("%s", &stringtest);
出现错误“预期的左值”是因为
&stringtest
不是有效的
哦,正如其他答案中提到的,修改字符串文字会调用未定义的行为
在包含标题之后,您需要添加一个函数原型:
char* strtrunk(char*, int);
或者只需将
strtrunk
的定义移到main
的定义之前,您的函数strtrunk
返回一个char*
,并且stringtest
已经是char*
类型。所以使用
stringtest=strtrunk("hello world!", 3);
而不是
&stringtest=strtrunk("hello world!", 3);
printf("%s", &stringtest);
%s
需要一个char*
作为其参数,并且由于stringtest
已经是一个char*
,请使用
printf("%s", stringtest);
而不是
&stringtest=strtrunk("hello world!", 3);
printf("%s", &stringtest);
出现错误“预期的左值”是因为
&stringtest
不是有效的
哦,正如其他答案中提到的,修改字符串文字会调用未定义的行为
在包含标题之后,您需要添加一个函数原型:
char* strtrunk(char*, int);
或者只需将
strtrunk
的定义移到main
的定义之前,您的函数strtrunk
返回一个char*
,并且stringtest
已经是char*
类型。所以使用
stringtest=strtrunk("hello world!", 3);
而不是
&stringtest=strtrunk("hello world!", 3);
printf("%s", &stringtest);
%s
需要一个char*
作为其参数,并且由于stringtest
已经是一个char*
,请使用
printf("%s", stringtest);
而不是
&stringtest=strtrunk("hello world!", 3);
printf("%s", &stringtest);
出现错误“预期的左值”是因为
&stringtest
不是有效的
哦,正如其他答案中提到的,修改字符串文字会调用未定义的行为
在包含标题之后,您需要添加一个函数原型:
char* strtrunk(char*, int);
或者只需将
strtrunk
的定义移到main
的定义之前,您的函数strtrunk
返回一个char*
,并且stringtest
已经是char*
类型。所以使用
stringtest=strtrunk("hello world!", 3);
而不是
&stringtest=strtrunk("hello world!", 3);
printf("%s", &stringtest);
%s
需要一个char*
作为其参数,并且由于stringtest
已经是一个char*
,请使用
printf("%s", stringtest);
而不是
&stringtest=strtrunk("hello world!", 3);
printf("%s", &stringtest);
出现错误“预期的左值”是因为
&stringtest
不是有效的
哦,正如其他答案中提到的,修改字符串文字会调用未定义的行为
在包含标题之后,您需要添加一个函数原型:
char* strtrunk(char*, int);
或者只需将
strtrunk
的定义移到main
的定义之前,按照CoolGuy的建议进行更改。然而,这还不够
不能修改字符串文字。即使您的程序会编译,它也会崩溃,因为修改字符串文字是非法的。
使用我在下面展示的东西:
char p[20] = "hello world!"
strtrunk (p, 3);
按照Coolgay的建议进行更改。然而,这还不够 不能修改字符串文字。即使您的程序会编译,它也会崩溃,因为修改字符串文字是非法的。 使用我在下面展示的东西:
char p[20] = "hello world!"
strtrunk (p, 3);
按照Coolgay的建议进行更改。然而,这还不够 不能修改字符串文字。即使您的程序会编译,它也会崩溃,因为修改字符串文字是非法的。 使用我在下面展示的东西:
char p[20] = "hello world!"
strtrunk (p, 3);
按照Coolgay的建议进行更改。然而,这还不够 不能修改字符串文字。即使您的程序会编译,它也会崩溃,因为修改字符串文字是非法的。 使用我在下面展示的东西:
char p[20] = "hello world!"
strtrunk (p, 3);
您可以使用下面的代码
char *strtrunk(char *string, int offset);
char *stringtest;
char Char_array[]="hello world!";
int main()
{
stringtest=strtrunk(Char_array, 3);
printf("%s", stringtest);
getch();
return 0;
}
char *strtrunk(char *string, int offset)
{
int stringlen = strlen(string);
string[stringlen - offset] = 0x00;
return string;
}
请阅读此链接,该链接详细解释了您的问题您可以使用以下代码
char *strtrunk(char *string, int offset);
char *stringtest;
char Char_array[]="hello world!";
int main()
{
stringtest=strtrunk(Char_array, 3);
printf("%s", stringtest);
getch();
return 0;
}
char *strtrunk(char *string, int offset)
{
int stringlen = strlen(string);
string[stringlen - offset] = 0x00;
return string;
}
请阅读此链接,该链接详细解释了您的问题您可以使用以下代码
char *strtrunk(char *string, int offset);
char *stringtest;
char Char_array[]="hello world!";
int main()
{
stringtest=strtrunk(Char_array, 3);
printf("%s", stringtest);
getch();
return 0;
}
char *strtrunk(char *string, int offset)
{
int stringlen = strlen(string);
string[stringlen - offset] = 0x00;
return string;
}
请阅读此链接,该链接详细解释了您的问题您可以使用以下代码
char *strtrunk(char *string, int offset);
char *stringtest;
char Char_array[]="hello world!";
int main()
{
stringtest=strtrunk(Char_array, 3);
printf("%s", stringtest);
getch();
return 0;
}
char *strtrunk(char *string, int offset)
{
int stringlen = strlen(string);
string[stringlen - offset] = 0x00;
return string;
}
请阅读此链接,该链接详细解释了您的问题修改字符串文字是未定义的行为()。修改字符串文字是未定义的行为()。修改字符串文字是未定义的行为()。修改字符串文字是未定义的行为()现在错误是:main.c:14:error:strtrink@SimoneGreco更新答案的重新定义不兼容类型。简单地说,在
main
之前移动char*strtrunk(char*string,int offset){…}
或添加char*strtrunk(char*,int)代码>就在#include
snow之后,错误是:main.c:14:错误:用于重新定义'strtrink'@SimoneGreco更新答案的不兼容类型。简单地说,在main
之前移动char*strtrunk(char*string,int offset){…}
或添加char*strtrunk(char*,int)代码>就在#include
snow之后,错误是:main.c:14:错误:用于重新定义'strtrink'@SimoneGreco更新答案的不兼容类型。简单地说,在main
之前移动char*strtrunk(char*string,int offset){…}
或添加char*strtrunk(char*,int)代码>就在#include
snow之后,错误是:main.c:14:错误:用于重新定义'strtrink'@SimoneGreco更新答案的不兼容类型。简单地说,在main
之前移动char*strtrunk(char*string,int offset){…}
或添加char*strtrunk(char*,int)代码>紧跟在#include