如何在 Turbo C/C++ 中通过引用传递字符串

Posted

技术标签:

【中文标题】如何在 Turbo C/C++ 中通过引用传递字符串【英文标题】:How to pass a string by refrence in 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] .. 仍然没有效果 【参考方案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。

以上是关于如何在 Turbo C/C++ 中通过引用传递字符串的主要内容,如果未能解决你的问题,请参考以下文章

在 C 中通过引用传递字符串

如何在php中通过引用传递无限参数[重复]

在 Javascript 中通过引用传递字符串

在 C++ 中通过引用和值传递字符串

在Java中通过引用传递字符串?

在 C++ 中通过引用传递 char 的效率