如何在 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++ 中通过引用传递字符串的主要内容,如果未能解决你的问题,请参考以下文章