-1

Cの整数から最後の数を削除する方法はありますか?たとえば、ユーザーが番号「123」を入力した場合、それを「12」に変更する方法はありますか?

ありがとう

4

5 に答える 5

8

その整数を10で割ります。

123/10==12。

于 2013-02-08T21:10:56.750 に答える
7

私は通常、10で割ります。整数の数学は切り捨てられます。通常、それは初心者を怒らせますが、それはまさにあなたがここで望んでいることです。ただし、負の数に注意してください。

于 2013-02-08T21:10:56.977 に答える
3

整数値として切り捨てたい場合は、整数除算を使用してください。

number = 123;
number /= 10;
/* number is now 12 */

文字列の割り当て方法によっては、3を\0文字に設定するだけで、文字列に印刷されないようにすることができます。

于 2013-02-08T21:11:22.087 に答える
3

10で割ることは間違いなく好ましい解決策です。

ただし、整数に変換する前に入力文字列から最後の桁を削除する場合(intたとえば、ユーザーが5000111222のように大きすぎて収まらない数値を入力する可能性がある場合)、ユーザーの入力を想定して次の操作を実行できます。char *変数にありますbuf

buf[strlen(buf)-1] = 0;

これにより、文字列が1文字早く終了します。文字列が空()の場合、これにより未定義の動作が発生する""ことに注意してください。そのため、最初に文字列が空でないことを確認してください。

于 2013-02-08T21:14:27.250 に答える
1

数値は10進表現とは異なることに注意してください。

とはいえ、ここでは整数除算を使用して10で除算できます。

#include <stdio.h>

int main(int argc, char *argv[]) {
    int i;
    for (i = 10; i < 21; i++)
        printf("%d %d\n", i, i/10);

    return 0;
}
于 2013-02-08T21:14:47.017 に答える