#include <stdio.h>
#include <string.h>
#define MAX_WARD 256
void main(void)
{
//===変数宣言===
char aDataIn[MAX_WARD]; //反転前文字列入力先
char aDataOut[MAX_WARD]; //反転後文字列格納先
char *pDataIn, *pDataOut; //反転前・後配列操作用ポインタ
int nStrlength; //入力文字数
int nLoopCntWord; //反転処理ループ用
printf("何か文字を入力してください(255文字以内)>");
scanf("%s", &aDataIn);
nStrlength = (int)strlen(aDataIn);
printf("\マークn文字数は「%d」文字です。\n", nStrlength);
//===文字列の反転処理===
pDataIn = ■■■■■■; //aDataIn の最終文字位置
pDataOut = ■■■■■■; //aDataOutの先頭
for( nLoopCntWord = 0; nLoopCntWord < ■■■■; nLoopCntWord ++)
{
■■■■■■ = *pDataIn;
pDataIn ■■;
pDataOut ■■;
}
■■■■■■ = ■■;
printf("*** 反転処理完了 ***\n");
printf("入力した文字列:%s\n", aDataIn);
printf("反転した文字列:%s\n", aDataOut);
rewind(stdin);
getchar();
}
黒い部分の答えを教えてください
A 回答 (5件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
>考えてもわからないのでここに聞きに来ました
ではまず反転させずに、
入力した文字列をaDataInからaDataOutにコピーする方法を考えてみてください。
それができた上で、文字列を反転するということはどういう事か考えた方がよいかと思います。
pDataIn = aDataIn;pDataOut = pDataIn;
for( nLoopCntWord = 0; nLoopCntWord < nStrlength; nLoopCntWord ++)
{
aDataOut[MAX_WARD] = *pDataIn;
pDataIn --;
pDataOut ++;
}
*pDataOut = '\0';
反転もできないし、フフフフとでてきてしまいます・・・
No.3
- 回答日時:
>反転もできないし、フフフフとでてきてしまいます・・・
いやだから、まずは反転せずにそのままコピーをするのを考えてみましょうと。
pDataIn = aDataIn;
pDataOut = pDataIn;
for( nLoopCntWord = 0; nLoopCntWord < nStrlength; nLoopCntWord ++)
↑はあってますか?
No.4
- 回答日時:
本題とは関係ないけど
scanf("%s", &aDataIn);
を見ると「大丈夫だろうか」と心配になってしまう. ここは &aDataIn なのにそのあとの
nStrlength = (int)strlen(aDataIn);
はなんで &aDataIn じゃなくて aDataIn なんだろう.
No.5
- 回答日時:
>pDataIn = aDataIn;
>pDataOut = pDataIn;
もしかして上ので、aDataInからaDataOutへそのままコピーしたつもりになってますか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# c言語配列の結合についてです。 なぜうまくいかないのでしょうか。 #include <stdio.h 4 2022/05/30 22:42
- C言語・C++・C# c言語でユーザ関数を利用して入力された文字列を反転させるプログラムを作りたいです。 3 2023/01/29 19:47
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- C言語・C++・C# 宣言する関数の形が決まっている状態で、 str1とstr2の文字列をこの順に引っ付けてstrに保存し 2 2022/05/30 18:21
- C言語・C++・C# C言語の課題が出たのですが自力でやっても分かりませんでした。 要素数がnであるint型の配列v2の並 3 2022/11/19 17:41
- C言語・C++・C# str[j++]の意味 2 2022/08/30 16:20
- C言語・C++・C# 【C言語】全角文字の配列を、全角のまま1文字ずつ出力する方法 4 2023/05/09 15:08
- C言語・C++・C# C言語で再起関数とポインタを用いて文字列反転をする方法がわかりません。 4 2023/04/29 20:32
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
文字列中に含まれる文字の個数...
-
反転した数値を表示させるやり方
-
文の意味
-
C言語 配列 文字列
-
fgets関数を使用したときの文字...
-
c言語のプログラミングでキーボ...
-
Cで「大文字、小文字の判定」は...
-
2÷3などの余りについて
-
C言語で%を使わない余りの出し方
-
比較回数と交換回数表示について
-
信頼区間の1.96や1.65ってどこ...
-
nCmの関数
-
複数桁10進数の*桁目だけを抽出...
-
Notepad++の関数リスト表示の変...
-
C言語のfor文です。 繰り返しの...
-
break文でループを一気に抜ける...
-
正負を反転させて出力するプロ...
-
#define _CRT_SECURE_NO_WARNIN...
-
error C2143: 構文エラー : ';'...
-
プログラムでの数字につく”f”の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CStringのFindで文字列検索を行...
-
sscanfとscanfの違いがよくわか...
-
反転した数値を表示させるやり方
-
fgets関数を使用したときの文字...
-
C言語 空白の行(改行のみ)が...
-
charと%c , %s の関係について
-
C言語のステップ数をカウントす...
-
fgetsで拾われる改行文字を削除...
-
itoaわかりません
-
C言語で16進数文字列から16進数...
-
strstrを利用しない文字列検索...
-
文字列中に含まれる文字の個数...
-
Cで「大文字、小文字の判定」は...
-
1行の文字列を時間差で表示する...
-
エディットボックスに入力され...
-
[Java]文字列分割
-
文字列の途中に「0」がある場...
-
教えていただけませんか?C言語...
-
atoiでの文字列以外のエラー処...
-
fgetsでバッファ残留文字列を無...
おすすめ情報