私はプログラミングの初心者です。これは私の最初の質問ですので、ルール!C言語でFN LN形式の文字列をLN、FN(John Doe、Doe、John)に変換する
コンピュータサイエンスIIコースの課題は、ファイルに自分の名前をつけたり、ファイルに自分の名前を書き込んだりすることです(John Doeと言うことがあります) )、そのファイルの内容を出力します。私はこの部分を達成することができました。
今、私の名前を姓、名字の形式に変換して別のファイルに書き込む関数を書いて使用するように指示されています。それは特に上記のファイルの内容を出力するように私に言いませんが、とにかくしたいです。
私は名前の変換にどのようにアプローチするのか正確にはわかりません。私は姓と名義で2つの異なる文字列を作成する必要があります(私はこれを行うことについて考えましたが、特に効果的ではありませんでした)。それはまた、構造体を利用する必要があるような状況のようには見えませんが、私はそれを完全に取り除くことができます。これまで私が持っていたことは次のとおりです。
#include <stdio.h>
#define SIZE 20
int main(void)
{
FILE *readPtr;//readfile.txt file pointer
FILE *writePtr;//writefile.txt file pointer
char nameFull[SIZE] = "John Doe";
readPtr = fopen("readfile.txt", "w");//creates readfile.txt file for writing
fprintf(readPtr, "%s", nameFull);//writes contents of string "nameFull" to file
fclose(readPtr);//close file
if((readPtr = fopen("readfile.txt", "r")) == NULL){//returns error message if file can't be opened
printf("Error opening file!\n");
}
else{
while(!feof(readPtr)){//end of file check for readPtr file
fscanf(readPtr, "%[^\n]s", nameFull);
printf("\n%s\n\n", nameFull);
}
fclose(readPtr);
}
}
すべての回答や提案は大歓迎です。正しい方向へのちょっとした動きだけでもすばらしくなるでしょう。また、私の投稿についての提案/批判も歓迎されているので、今後も改善する可能性があります。御時間ありがとうございます!
[!のFEOF(readPtr)が '間違っている一方で、なぜ'](http://stackoverflow.com/questions/5431941/while-feof-file-is-always-wrong) – Barmar
はい、2つの文字列を使用します。 'fscanf'で'%s'を使用して、各文字列に1つの単語を読み込みます。次に、 'printf'を使って2番目のファイルにそれらを読み込むのとは異なる順序で書き込みます。 – Barmar