看报错的提示 说是42行strcpy(b,toa)的问题
不会改了
#include<iostream>
#include<cstring>
using namespace std;
int length(char c[])
{
int i;
for (i = 0; c[i] != '\0'; i++)
{
}
return i;
}
int toi(char a[])
{
int i, num = 0;
for (i =0 ; i < length(a); i++)
{
num = num * 10 + a[i] - '0';
}
}
char toa(int n,int len)
{
int i;
char a[len-1];
for(i=0; i<len-1; i++)
{
a[i]=n%10;
n/=10;
}
a[i]='\0';
return a[len-1];
}
int main()
{
char a[100];
cin>>a;
int n;
n=toi(a);
cout << n << endl;
char b[100];
cin >> b;
strcpy(b,toa(n,length(a)));
cout<<b;
}
错误点一:
错误点二:
#include<iostream>
#include<cstring>
using namespace std;
int length(char c[])
{
int i;
for (i = 0; c[i] != '\0'; i++)
{
}
return i;
}
int toi(char a[])
{
int i, num = 0;
for (i = 0; i < length(a); i++)
{
num = num * 10 + a[i] - '0';
}
return num;
}
/**将整数转化为字符串
* @param n 需要转化的整数
* @parma buff 字符串的存储区
* @param buff 字符串的存储区的长度
* @param 返回buff
*/
char* toa(int n, char* buff, int len)
{
int i;
for (i = 0; i < len - 1; i++)
{
buff[i] = n % 10;
n /= 10;
}
buff[i] = '\0';
return buff;
}
int main()
{
char a[100];
cin >> a;
int n;
n = toi(a);
cout << n << endl;
char b[100];
cin >> b;
strcpy(b, toa(n, a, length(a)));
cout << b;
}
```c++
```
一些小的方面需要改一下,toa函数不知道是不是符合你要求的那个样子,修改了一下,如下:
#include<iostream>
#include<cstring>
using namespace std;
int length(char c[])
{
int i;
for (i = 0; c[i] != '\0'; i++)
{
}
return i;
}
int toi(char a[])
{
int i, num = 0;
for (i =0 ; i < length(a); i++)
{
num = num * 10 + a[i] - '0';
}
return num;
}
char at[12];
char * toa(int n)
{
int i;
int sum=0;
int weight=1;
int num = n;
for(i=0; sum!=num; i++)
{
at[i]=n%10+'0';
sum+=n%10*weight;
n/=10;
weight*=10;
}
at[i]='\0';
return at;
}
int main()
{
char a[100];
cin>>a;
int n;
n=toi(a);
cout << n << endl;
int b;
cin >> b;
strcpy(a,toa(b));
cout<<b;
}