1. ホーム

[今日のポイント】 「エラー」トークンの前に一次式がある場合の対処法

2022-02-21 11:06:14
<パス

コードを入力してください。

#include

using namespace std;
char *ladd(char *s1,char *s2)
{ int n1,n2,n;	
char *res,c=0;	
n1=strlen(s1);	
n2=strlen(s2);	
n=n1>n2?n1:n2;	
res=new char[n+2];	
for(int i=n+1;i>=0;i--)
	res[i]=i>n-n1?s1[i-n-1+n1]:'0'; for(int i=n;i>=0;i--)	
	{ char tchar;		
tchar=i>n-n2?res[i]-n2?res[i]-'0'+s2[i-n+n2-1]-'0'+c:res[i]-'0'+c; c=tchar>9?1:0;	
res[i]=c>0?tchar-10+'0':tchar+'0'; }		
return res;
}
int main()
{	
char num1[100],num2[100],*num; cin>>num1>>num2; num=ladd(num1,num2);	
cout<<num1<<"+"<<<num2<<"="<<<num<<endl; delete[]num;	
return 0;}


プログラムがエラーを報告する。

エラー ①:[エラー] 'strlen' はこのスコープで宣言されていません。
この投稿では、エラーの修正について非常に詳しく回答しています。
https://blog.csdn.net/qq_45554689/article/details/109082242?utm_source=app&app_version=4.11.0&code=app_1562916241& uLinkId=usr1mkqgl919blen

Report error ②:[Error] expected primary-expression before ';' token.
エラー3:[エラー] ';' トークンの前に ':' があることが予想されます。
この2つは問題のカテゴリが同じようなのでまとめてみました(初心者は震え上がる)
この2つの問題が発生する
前のコードに入力エラーがあるためです。
そこで、修正の焦点は、前回入力したコードに間違いがないかを確認することです
まとめると、修正後のコードは以下のようになります。

#include

#include

using namespace std;
char *ladd(char *s1,char *s2)
{
	int n1,n2,n;
	char *res,c=0;
	n1=strlen(s1);
	n2=strlen(s2);
	n=n1>n2?n1:n2;
	res=new char[n+2];
	for(int i=n+1;i>=0;i--)
	res[i]=i>n-n1?s1[i-n-1+n1]:'0';
	for(int i=n;i>=0;i--)
	{
		char tchar;
		tchar=i>n-n2?res[i]-'0'+s2[i-n+n2-1]-'0'+c:res[i]-'0'+c;
		c=tchar>9?1:0;
		res[i]=c>0?tchar-10+'0':tchar+'0';	
		}
		return res;
}
int main()
{
	char num1[100],num2[100],*num;
	cin>>num1>>num2;
	num=ladd(num1,num2);
	cout<<num1<<"+"<<<num2<<"="<<<num<<endl;
	delete[]num;
	return 0;
}


出力に成功しました。