-3

テキスト ファイル内の最初の単語の中間文字を見つけて、後でそれを使用してその文字の他の出現回数をカウントするにはどうすればよいですか? テキストファイル内の単語をカウントする関数と、最初の単語の長さをカウントする関数があります。

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <conio.h>
#define maxBuf 128

void howMany(FILE * file);
void words(FILE * file);

int main() {
FILE *temp, *file;
file = fopen("test.txt", "r");
temp = fopen("temp.txt","w");
char sd1[maxBuf];

howMany(file);
words(file);

fclose(file);
fclose(temp);

unlink("test.txt");
rename("temp.txt","test.txt");

return 0;  
}
void howMany(FILE * file){
char sd1[maxBuf];
file = fopen("test.txt", "r");
int i, z, c;
char word[1000];

while (!feof(file)) {
        if(fscanf(file,"%s",word)==1);
        printf("word read is: %s\n", word);
        printf("word read is: %i\n", strlen(word));                  
        break;
}
}
void words(FILE * file){
file = fopen("test.txt", "r");
char sd1[maxBuf];
int iwant; 
int nwords = 0; 

char word[1000];
int i, z;

while (fscanf(file, "%s", sd1) == 1) {

++nwords;
}
printf("There are %i words. \n", nwords);
}
4

1 に答える 1

0

コードをインデントします。

次のような関数の結果を確認してくださいfopen, fgets...

MAX_BUFのより良い名前ですmaxBuf

size_t middle, n = strlen(sd1);
middle = (n / 2) + (n % 2 != 0);
于 2012-12-15T12:32:50.350 に答える