【问题标题】:Function to return char array via pointers通过指针返回字符数组的函数
【发布时间】:2018-01-10 03:27:34
【问题描述】:

我需要创建一个返回 char 数组的函数(无参数)。数组的长度将由用户定义。我无法使用gets() 函数。

char get()
{
    int size;

    char *str=new char[size];
    int i,l;

    cout<<"enter size";
    cin>>size;

    for(i=0;i<size;i++)
    {
        str[i]=getche();

    }

    str[size]='\0';

    return str[size];
}

【问题讨论】:

标签: c++ arrays pointers char return


【解决方案1】:

以下代码可能有用:

char* get()
{
    int size;

    cout<<"enter size";
    cin>>size;

    char *str=new char[size + 1]; // +1 for `\0` character

    for(int i=0;i<size;i++)
    {
        str[i]=getche();
    }

    str[size]='\0';

    return str;
}

要在调用函数中获取字符串大小(例如,在main() 中),请使用strlen() 函数,该函数位于cstring 头文件中。

【讨论】:

  • 谢谢,但我需要将重新运行带到另一个要使用的功能。因此对于此代码 int length(char* str) { char i; for(i = 0; str[i] != '\0'; ++i); // printf("字符串长度:%d", i);返回我; }
  • 因为一个函数只能返回 1 个值。因此,您可以返回字符串或字符串的长度。我更喜欢返回字符串,因为您可以在调用函数中计算长度(如上所述)。但是,如果您想返回长度,则可以将函数签名更改为 int get(char** str) 并相应地更改 str 变量的使用。如果您不想要 str 变量的内容,那么当前代码是可以的,除了从上面的代码中返回 size-1
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-27
  • 2021-12-23
相关资源
最近更新 更多