fork download
  1. #include <stdio.h>
  2.  
  3. /**
  4.  * 回文判定関数
  5.  * 入力された文字列が回文であれば1を、そうでなければ0を返します。
  6.  */
  7. int isPalindrome(char s[]){
  8. int len = 0;
  9.  
  10. // 1. まず文字列の長さをカウントします('\0'は文字列の終わりを示す記号です)
  11. while (s[len] != '\0') {
  12. len++;
  13. }
  14.  
  15. // 2. 左右の両端から一文字ずつ比較していきます
  16. // len / 2 回(真ん中)までチェックすれば判定可能です
  17. for (int i = 0; i < len / 2; i++) {
  18. // 左からi番目:s[i]
  19. // 右からi番目:s[len - 1 - i]
  20. if (s[i] != s[len - 1 - i]) {
  21. // 一箇所でも違えば回文ではないので 0 を返して終了
  22. return 0;
  23. }
  24. }
  25.  
  26. // 3. すべてのチェックを通過すれば回文なので 1 を返す
  27. return 1;
  28. }
  29.  
  30. // メイン関数
  31. int main(){
  32. char s[100];
  33.  
  34. // 文字列の入力
  35. if (scanf("%s", s) != 1) return 0;
  36.  
  37. // 結果の表示
  38. printf("%s -> %d\n", s, isPalindrome(s));
  39.  
  40. return 0;
  41. }
Success #stdin #stdout 0.01s 5276KB
stdin
Standard input is empty
stdout
Standard output is empty