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

时间:2013-10-13 13:39:25

标签: c++ string function reference

[我正在使用以下代码

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 ++中的refrence传递它?

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

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

2 个答案:

答案 0 :(得分:1)

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

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

as

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

这意味着您需要将指向cahrchar *)的指针传递给您的函数。但是你传递了char l你的功能。

fix_filename(l,"books",i);

答案 1 :(得分:1)

void fix_filename(char k[] ,char pre[] ,int n )

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

我建议你学习更多的讲座,并且使用一个好的编译器。