Shammer's Philosophy

My private adversaria

文字列の反転

文字列を反転させる標準関数を見つけることができなかったので自作。

char* reverse_string(char* value){
  if ( strlen(value) < 2 ) {
    return value;
  }
  else {
    char *result = malloc(strlen(value) - 1);
    int i, j;
    for( i = 0, j = strlen(value) - 1 ; i < strlen(value) ; i++, j-- ){
      result[i] = value[j];
    }
    result[i] = '\0';
    return (char *)result;
  }
}

int main(int argc, char *argv[]){
  if ( argc != 2 ){
    printf("Usage: %s value\n", argv[0]);
    return 1;
  }
  printf("%s\n", reverse_string(argv[1]));
  return 0;
}