入力した文字列を、反転させたいんですが、うまくいきません。
なぜなんでしょうか?
メモリは確保入力した文字列+1にしています。
C
1#include <stdio.h> 2#include <stdlib.h> 3#include <string.h> 4 5// 入力した文字列の反転を表示するプログラム 引数:なし 戻り値:0 メモリの確保失敗-1 6int main() 7{ 8 int i; 9 char input[16]; 10 char *inputHantai; 11 printf("文字列を入力してください:"); 12 scanf("%s", input); 13 // 確保したメモリ(入力した文字列の長さ+1)をcharポインタにキャスト 14 inputHantai = (char*)malloc(sizeof(char)*(strlen(input) + 1)); 15 16 // メモリの確保に失敗したとき 17 if(inputHantai == NULL) 18 { 19 puts("メモリの確保に失敗しました"); 20 return -1; 21 } 22 23 printf("文字列反転:"); 24 25 // 入力文字列の数だけ 26 for(i = strlen(input) - 1; i >= 0; i--) 27 { 28 int j = 0; 29 // 入力文字列反転を代入 30 inputHantai[j] = input[i]; 31 j++; 32 } 33 34 // 結果出力 35 printf("%s", inputHantai); 36 37 // メモリ開放 38 free(inputHantai); 39 return 0; 40}