【发布时间】:2021-07-15 07:51:39
【问题描述】:
#include <stdio.h>
#include <string.h>
void Define_string(char *str)
{
str = "hello";
return;
}
int main()
{
char my_string[100] = {'\0'}
Define_string(my_string);
printf("%s", my_string);
return(0);
}
我正在尝试使用一个函数来定义一个字符串,但我只是不断收到空值或指针转换错误。您将如何使用函数来定义在 main 中声明的字符串?我不是试图输入字符串值,而是用硬代码定义它。 尝试使用返回不同字符串的嵌套 if-else。
【问题讨论】:
-
您应该使用
strcpy或类似方法,将字符串实际写入底层内存以使其可用。 -
问题是你修改了 local 变量
str指向别的地方。当函数返回时变量的生命周期结束时丢失的修改。 -
与其他语言不同,C 中没有真正的字符串类型。我建议您阅读 C 教科书中处理字符串的章节,主题相当广泛。
标签: c string function declaration