Cの整数から最後の数を削除する方法はありますか?たとえば、ユーザーが番号「123」を入力した場合、それを「12」に変更する方法はありますか?
ありがとう
その整数を10で割ります。
123/10==12。
私は通常、10で割ります。整数の数学は切り捨てられます。通常、それは初心者を怒らせますが、それはまさにあなたがここで望んでいることです。ただし、負の数に注意してください。
整数値として切り捨てたい場合は、整数除算を使用してください。
number = 123;
number /= 10;
/* number is now 12 */
文字列の割り当て方法によっては、3を\0
文字に設定するだけで、文字列に印刷されないようにすることができます。
10で割ることは間違いなく好ましい解決策です。
ただし、整数に変換する前に入力文字列から最後の桁を削除する場合(int
たとえば、ユーザーが5000111222のように大きすぎて収まらない数値を入力する可能性がある場合)、ユーザーの入力を想定して次の操作を実行できます。char *
変数にありますbuf
:
buf[strlen(buf)-1] = 0;
これにより、文字列が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;
}