[我正在使用以下代码
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是输入。
答案 0 :(得分:1)
在C中,编译器解释函数声明
void fix_filename( char [] ,char [] ,int );
as
void fix_filename( char * ,char * ,int );
这意味着您需要将指向cahr
(char *
)的指针传递给您的函数。但是你传递了char l
你的功能。
fix_filename(l,"books",i);
答案 1 :(得分:1)
void fix_filename(char k[] ,char pre[] ,int n )
在此功能中,您希望收到char[]
作为第一个参数,而在main()
中,您传递单个字符?
我建议你学习更多的讲座,并且使用一个好的编译器。