2

現在、null で終わる文字列を読み込んで、その文字列に含まれるアルファベット文字の数を返そうとしています。現在、Main、countAlpha (文字数をカウントするためのもの)、文字がアルファベットかどうかを判断する isAlpha の 3 つの関数があります。アルゴリズムの助けが欲しいです。

したがって、私の Main では、文字列をロードし、ジャンプして countAlpha にリンクし、syscall コマンドをロードして int を出力し、プログラムを終了します。

私が問題を抱えている countAlpha については、文字列内の各文字を通過する for ループを作成し、isAlpha が 1 (文字がアルファベットであることを示す) を返す場合は、カウントを増やします。

isAlpha は簡単です。文字が ASCII の特定の数字の間にあるかどうかを判断するだけです。

私の質問は、countAlpha をどのように攻撃するかということだと思います。ご協力いただきありがとうございます。(注:実際のコードは必要ありません。ヒントとヒントだけです)

4

1 に答える 1

2

isAlpha への呼び出しの戻り値/レジスタをテストし、テストが true になるたびに別のレジスタ/カウント変数を追加/インクリメントしたいようです。または、値が 0 または 1 として返される場合は、ループのたびに戻り値をカウント レジスタに直接追加することもできます。次に、現在の文字が '\0' 文字になるまでループを設定するだけです。次に、カウントレジスタに最終値が保持されます。

これはあなたを助けるのに十分な深さですか?

于 2013-02-06T23:46:13.797 に答える