【问题标题】:How to use function to define a string in C如何使用函数在C中定义字符串
【发布时间】: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


【解决方案1】:
#include <stdio.h>
#include <string.h>

void Define_string(char *str)
{
    strcpy(str, "hello");
    return;
}

int main()
{
    char my_string[100] = {'\0'};

    Define_string(my_string);
    printf("%s", my_string);

    return(0);
}

如果你使用 strcpy,它可以工作。

【讨论】:

    【解决方案2】:

    如果你只是定义字符串硬代码。使用宏。

    #define Define_string(var,val) const char *var=val

    Define_string(my_string,"hello");

    【讨论】:

      猜你喜欢
      • 2019-09-18
      • 1970-01-01
      • 2011-08-20
      • 2012-05-18
      • 1970-01-01
      • 1970-01-01
      • 2016-02-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多