Я пытаюсь написать код, который читается из файла, и работает с символами, которые он читает. Суть в том, что он должен исправить ошибки капитализации, присутствующие в файле, который он читает.Проверка новой строки в текстовом файле
Одним из особых требований является то, что я должен пронумеровать каждую строку, поэтому я написал немного, чтобы определить, является ли каждый прочитанный символ прерыванием строки.
int fix_caps(char* ch, int* char_in_word, int* line_num){
char a;
ch = &a;
if(a != '\n'){
return 0;
}else{
return 1;
}
if(a == ' ')
*char_in_word = 0;
if(*char_in_word == 1)
a = toupper(a);
if(*char_in_word > 1)
a = tolower(a);
char_in_word++;
}
Однако функция, в которой она находится, всегда возвращает 0, когда она должна возвращать 1 в конце каждой строки. Что я делаю не так?
Есть несколько вещей, которые я не понимаю: вы назначаете ch адресу непосвященной переменной, и функция всегда будет выходить с 'if' в верхней части функции; он никогда не попадет в 'if (a == '')' часть, потому что обе ноги оператора if приводят к возврату. – Carcigenicate
Вы позволяете 'ch' указывать на' & a', но 'a' неинициализирован. Так что более чем вероятно всегда '! = '\ N''. Я думаю, что вы хотели сделать, это 'char a = * ch' – Beko
Спасибо, я хотел, чтобы это было' char a = * ch'. К сожалению, он по-прежнему не исправляет случай символов, переданных в него. –