アプリ版:「スタンプのみでお礼する」機能のリリースについて

#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件)

宿題ならご自分で考えましょう。



最初の2つとかコメントに回答書いてあるし。
    • good
    • 0
この回答へのお礼

考えてもわからないのでここに聞きに来ました

お礼日時:2011/10/29 12:16

>考えてもわからないのでここに聞きに来ました



ではまず反転させずに、
入力した文字列をaDataInからaDataOutにコピーする方法を考えてみてください。
それができた上で、文字列を反転するということはどういう事か考えた方がよいかと思います。
    • good
    • 0
この回答へのお礼

pDataIn = aDataIn;pDataOut = pDataIn;
for( nLoopCntWord = 0; nLoopCntWord < nStrlength; nLoopCntWord ++)
{
aDataOut[MAX_WARD] = *pDataIn;

pDataIn --;
pDataOut ++;
}
*pDataOut = '\0';

反転もできないし、フフフフとでてきてしまいます・・・

お礼日時:2011/10/29 15:55

>反転もできないし、フフフフとでてきてしまいます・・・



いやだから、まずは反転せずにそのままコピーをするのを考えてみましょうと。
    • good
    • 0
この回答へのお礼

pDataIn = aDataIn;
pDataOut = pDataIn;
for( nLoopCntWord = 0; nLoopCntWord < nStrlength; nLoopCntWord ++)

↑はあってますか?

お礼日時:2011/10/30 00:30

本題とは関係ないけど


scanf("%s", &aDataIn);
を見ると「大丈夫だろうか」と心配になってしまう. ここは &aDataIn なのにそのあとの
nStrlength = (int)strlen(aDataIn);
はなんで &aDataIn じゃなくて aDataIn なんだろう.
    • good
    • 0

>pDataIn = aDataIn;


>pDataOut = pDataIn;

もしかして上ので、aDataInからaDataOutへそのままコピーしたつもりになってますか?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!