2013-10-13 116 views
-4

[我使用下面的代碼如何通過refrence在Turbo C /傳遞一個字符串C++

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++的原因是,它是assigment,我不能使用任何其他編譯器。

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

+2

'C/C++'不是一種語言。選一個。這兩種語言的慣用解決方案會有很大差異。 – 2013-10-13 13:42:16

+0

你能給出一個你期望在哪個變量中得到的輸出的例子嗎? –

+0

C++/C任何這些..喜歡C++請 – user2876151

回答

1

在C,編譯器解釋函數聲明

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

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

這意味着你需要傳遞指針cahrchar *)給你的函數。但你正在通過char l你的功能。

fix_filename(l,"books",i); 
+0

請再看一遍,我通過了一個char數組,'l [100]' – user2876151

+0

不要試圖讓我變傻。您已編輯您的問題。仍然'我'不是一個數組。 – haccks

+0

我沒有這個意思..對不起,如果這冒犯了你。我的意思是我嘗試過,你可以看到我的評論@top,我從來沒有打算讓'我'一個數組..我希望它只是int。 – user2876151

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

在你想免費獲贈char[]作爲第一個參數,並在main()這個功能,你通過單個字符

我建議你學好你講課比較多,並且使用好的編譯器。

+1

更長的變量名稱也不會傷害。 – john

+0

這是錯誤的..我在原代碼中使用了'char l [100]'.. – user2876151

相關問題