基本課題 12..1
fgets()関数を使って入力された英数字からなる文字列のうち、偶数番目の 文字だけを表示するプログラムを作成せよ。ただし,先頭文字を0番目とする.
% ./evenCharacters
文字列 (126字まで)? Ritsumeikan
偶数番目の文字: Rtuekn
%
という問題がわかりません
私が作ったソース↓
#include<stdio.h>
#define BUFFER_SIZE (126)
int main(void){
char buf[BUFFER_SIZE];
int i;
printf("文字列(126文字まで)? ");
fgets(buf,BUFFER_SIZE,stdin);
printf("偶数番目の文字: ");
for(i=0 ; buf='\n' && i<126 ; i++){
if(i%2==0 ){
printf("%c",buf);
}
else {}
}
printf("\n");
return 0;
}
このソースでコンパイルを通して実行ファイルを実行してみると
偶数番目の文字:□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□
となります。
どこを直せばよいかわかる方おしえてください。
文字列の印字
Re:できたが・・・・
おかげさまで!をつけることによってコンパイルは通りましたが、出力されるのがなぜか奇数番目の文字です。
if(i%2 != 0)にすることによって、正しく表示されるのですが、なぜそうなるのかわかりません。誰か教えてください。
if(i%2 != 0)にすることによって、正しく表示されるのですが、なぜそうなるのかわかりません。誰か教えてください。