
テキストファイルの読み込みについて質問です。
あらかじめ用意されたテキストファイルを1行読み込み、 読み込んだ文字列内で特定の文字を検索する以下の プログラムを作成せよ。
(1)Emacs(Visual Studio)を用いて「風が吹けば桶屋が儲かる。」をローマ字で入力し、okeya.txt というファイル名で保存せよ。
(2)つぎに、この okeya.txt を読み込み、文字列内で文字の 'a'が 何番目にあるかをすべて列挙表示するプログラムokeya.cを 作成せよ。なお、文字列の先頭文字(K)の位置を第1番目とする。
文字列中の特定文字の検索にはポインタを用いること。
この実行結果が
Kazega hukeba okeyaga moukaru
Kazega hukeba okeyaga moukaru上の文字列にaは
2番目にあります。
6番目にあります。
13番目にあります。
19番目にあります。
21番目にあります。
27番目にあります。
になったのですが、ポインタを用いて特定文字の探索は以下のコードで正しいですか?
#pragma warning(disable: 4996)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N (256)
int main(void) {
FILE* fp;
char filename[] = "okeya.txt";
char str[N];
fp = fopen(filename, "r");
if (fp == NULL) {
printf("%s file not open!\n", filename);
exit(1);
}
while (fgets(str, N, fp) != NULL) {
printf("%s", str);
}
char* cp = str;
char target = 'a';
int position;
printf("\n%s", str);
printf("上の文字列に%cは\n", target);
while ((cp = strchr(cp, target)) != NULL){
position = (int)(cp - str) + 1;
printf("%d番目にあります。\n", position);
cp++;
}
fclose(fp);
return (0);
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Enterキーを押されたら次の処理...
-
構造体メンバの初期化
-
[C言語] 関数の配列引数の扱い...
-
Opencv画像処理 bmp処理
-
csvファイルの読み取り
-
C++で指定文字列のカウント方法...
-
エラーについて質問です。
-
矢印キーを押下してコンソール...
-
C言語で複数列のデータを1列の...
-
2÷3などの余りについて
-
「Aに対するBの割合」と「Aに対...
-
20'(角度)の計算がわかりま...
-
C言語での引数の省略方法
-
有効数字について 以前質問をし...
-
10個出力で改行したいのですが...
-
#if 1 #elseの意味について
-
Cプログラムについて
-
SIGALRMでプロセス終了
-
C言語 配列と関数の練習問題
-
信頼区間の1.96や1.65ってどこ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Enterキーを押されたら次の処理...
-
#defineが使用するメモリ領域に...
-
【C言語】全角文字の配列を、全...
-
printf による16進表示について
-
C言語で複数列のデータを1列の...
-
矢印キーを押下してコンソール...
-
VC++でSQLへSELECT文を送ったの...
-
char型2つを結合し、short型に...
-
Cでファイルの行数をカウントす...
-
ファイル操作で全角空白を消す
-
C++で指定文字列のカウント方法...
-
WinInetのInternetOpenUrl関数...
-
csvファイルの読み取り
-
setjmp・longjmpに関しまして
-
fscanfの使い方
-
バイナリファイル(画像)のよみ...
-
C言語のプログラムで、途中で止...
-
fread(),fwrite()等について
-
空白を含んだ文字列がうまく格...
-
0x8, スペース, 0x8をプログラ...
おすすめ情報