どこが間違っているのでしょうか
First nameとSecond nameを入力したら、
それぞれの文字の順番を逆に表示し、
最後にそれらを結合するプログラムを作りたいのですが、
以下のように作ったら、実行結果が
Inverted first word:
Inverted second word:
Result:
しか表示されません(最初の名前を記入させるところまでは大丈夫ですが)。
ソースコードのどこが間違っているかを教えてください。
ソースコードは次のとおりです。
#include <stdio.h>
#include <string.h>
int main(void)
{
int i,j;
char first[21];
char second[21];
int f;
int s;
char FIRST[21];
char SECOND[21];
char result[41];
printf("Input a first word within 20 letters:");
scanf("%s",first);
printf("Input a second word within 20 letters:");
scanf("%s",second);
f=strlen(first);
i=0;
while (first[f]!='\0'){
FIRST[i]=first[19-i];
i++;
}
FIRST[20]='\0';
s=strlen(second);
j=0;
while (second[s]!='\0'){
SECOND[j]=second[19-j];
j++;
}
SECOND[20]='\0';
strcpy(result,SECOND);
strcat(result,FIRST);
printf("Inverted first word:%s\n",FIRST);
printf("Inverted second word:%s\n",SECOND);
printf("Result:%s\n",result);
return 0;
}
お礼
回答ありがとうございます。