fork download
  1. #include <stdio.h>
  2.  
  3. #define SIZE 1000
  4.  
  5. // (a) 文字が数字かどうか判定
  6. int isdigit(char c) {
  7. return c >= '0' && c <= '9';
  8. }
  9.  
  10. // (b) 数字文字を数値に変換
  11. int todigit(char c) {
  12. return c - '0';
  13. }
  14.  
  15. // (c)(d) 文字列を整数に変換
  16. int str_to_int(const char *str) {
  17. int i = 0;
  18. int sign = 1;
  19. int result = 0;
  20.  
  21. // (d) 先頭が '+' または '-' の場合の処理
  22. if (str[i] == '-') {
  23. sign = -1;
  24. i++;
  25. } else if (str[i] == '+') {
  26. i++; // sign は 1 のまま
  27. }
  28.  
  29. // (c) 数字部分の処理
  30. while (str[i] != '\0' && isdigit(str[i])) {
  31. result = result * 10 + todigit(str[i]);
  32. i++;
  33. }
  34.  
  35. return sign * result;
  36. }
  37.  
  38. int main() {
  39. char input[SIZE];
  40. int num;
  41.  
  42. printf("整数を文字列で入力してください: ");
  43. scanf("%s", input); // (e) 文字列として読み込む
  44.  
  45. num = str_to_int(input);
  46.  
  47. printf("変換された数値: %d\n", num);
  48. printf("25で割った余り: %d\n", num % 25);
  49.  
  50. return 0;
  51. }
Success #stdin #stdout 0.01s 5320KB
stdin
1234
stdout
整数を文字列で入力してください: 変換された数値: 1234
25で割った余り: 9