前提・実現したいこと
c言語を使って入力された文字列を反転させたい。
例
入力:abcde
出力:edcba
入力:あいうえお
出力:おえういあ
発生している問題・エラーメッセージ
半角では正しく表示されたのですが、全角ではうまく表示されません。
該当のソースコード
C
1#include <stdio.h> 2 3 4int main(void) 5{ 6 char name1[11]; 7 char *p_name1; 8 int cnt; 9 10 p_name1 = name1; 11 12 //入力 13 printf("文字列を入力してください:"); 14 scanf("%s", name1); 15 rewind(stdin); 16 17 //元の文字列を出力 18 for (cnt = 0; cnt < 100; cnt++) 19 { 20 if (*(p_name1 + cnt) == '\0') 21 { 22 cnt--; //ヌル文字の一つ前にポイントを移動させる 23 break; 24 } 25 printf("%c", *(p_name1 + cnt)); 26 } 27 printf("\n"); 28 29 //反転させた文字列を出力 30 for (; cnt >= 0; cnt--) 31 { 32 printf("%c", *(p_name1 + cnt)); 33 } 34 printf("\n"); 35 36 return 0; 37}
試したこと
半角と全角で処理を分岐させようとしましたが、そのやり方もよくわかりませんでした。
補足情報(FW/ツールのバージョンなど)
Microsoft Visual Studio Professional 2017
Version 15.7.5
文字コード:Shift-JIS
回答3件
あなたの回答
tips
プレビュー