【问题标题】:How to pass a string by refrence in Turbo C/C++如何在 Turbo C/C++ 中通过引用传递字符串
【发布时间】:2013-10-13 13:39:24
【问题描述】:

[我正在使用以下代码

void fix_filename(char[], char[], int);

int  main(){
    int i;
    char k,l[100];

    cin >> i;
    fix_filename(l,"books",i);
    cout << "Stringis: ";
    puts(l);

    return 0;
}

void fix_filename(char k[] ,char pre[] ,int n){
    int i = 0, div, r = 0, pk;
    char temp, str[100];
    div = n;

    while(div!=0){
        r = div % 10;
        k[i] = 48+r;
        div=div / 10;
        i++;
    }

    k[i] = '\0';

    pk = strlen(k);

    for(i=0;i<pk/2;i++){
        temp = k[i];
        k[i] = k[pk-i-1];
        k[pk-i-1]=temp;
    }

    k = strcat(pre,k);
}

但我的字符串中充满了垃圾值(字符串 l[100]).. 如何在 turbo c/c++ 中通过引用传递它?

我使用 turbo c/c++ 的原因是它是分配,我不能使用任何其他编译器。

我希望字符串 (l) 的输出是 books121 ,其中 121 是输入。

【问题讨论】:

  • C/C++ 不是一种语言。选一个。两种语言的惯用解决方案将大不相同。
  • 你能举例说明你希望在哪个变量中收到的输出吗?
  • c++/C 中的任何一个......请喜欢 c++
  • 我看不出它是如何编译的——main 中的l 是一个未初始化的char,但你需要它是一个数组。
  • char l 更改为 char l[100] .. 仍然没有效果

标签: c++ string function reference


【解决方案1】:
void fix_filename(char k[] ,char pre[] ,int n )

在此函数中,您希望接收 char[] 作为第一个参数,而在 main() 中,您传递单个字符

我建议你学习更深入地讲课并使用好的编译器。

【讨论】:

  • 更长的变量名也无妨。
【解决方案2】:

在C语言中,编译器解释函数声明

void fix_filename( char []  ,char [] ,int );  

作为

void fix_filename( char *  ,char * ,int );  

这意味着您需要将指向 cahr (char *) 的指针传递给您的函数。但是您正在传递 char l 您的函数。

fix_filename(l,"books",i);

【讨论】:

  • 请再看一遍,我传递了一个字符数组,l[100]
  • 不要试图愚弄我。您已编辑您的问题。仍然i 不是数组。
  • 我不是那个意思。如果冒犯了你,对不起。我的意思是我试过了,你可以看到我的评论@top,我从来没有打算让i 成为一个数组。我希望它只是 int。
猜你喜欢
  • 2010-12-24
  • 2014-08-11
  • 2017-07-25
  • 2016-07-05
  • 2016-04-09
  • 2015-04-08
  • 1970-01-01
  • 1970-01-01
  • 2018-09-01
相关资源
最近更新 更多