Я довольно новичок в программировании, и это мой первый вопрос, поэтому, надеюсь, я не сломаю (слишком много) правила! Мне обычно нравится разбираться самостоятельно, но я в тупике, так что вот так:Преобразование строки в формате FN LN в LN, FN (John Doe to Doe, John) в C
У меня есть задание для курса по компьютерной науке II, который просит меня создать/записать мое имя в файл (скажем, Джон Доу), а затем выводит содержимое этого файла. Эта часть, которую я смог выполнить.
Теперь вторая половина задания говорит мне написать и использовать функцию, которая преобразует мое имя в имя Фамилия, Формат имени и записывает его в отдельный файл. Он не указывает мне, чтобы я выводил содержимое указанного файла, но я все равно хочу.
Я не совсем уверен, как подойти к преобразованию имени. Должен ли я создать две разные строки для моего имени и фамилии (я думал об этом, но это не показалось особенно эффективным)? Это также не похоже на ситуацию, которая должна требовать использования структуры, но я мог бы (и, вероятно, я) полностью отказаться от этого. Вот что у меня есть до сих пор:
#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
Да, используйте две строки , Используйте '% s' в' fscanf' для чтения одного слова в каждой строке. Затем вы можете использовать 'printf', чтобы записать их во второй файл в другом порядке, чем вы их читали. – Barmar