Первый раз постер извините, если это не ясно. Я пытаюсь заменить искомое слово в текстовом файле с заданным словом по всему тексту. Он работает для первой строки, но не дальше go. Спасибо за любую помощь. моя проблемная часть заключается в следующем: все ниже и ниже:
FILE *input_file = fopen("sentences_test.txt", "r");
char line [LINE_LENGTH];
FILE *write_file = fopen("replaced.txt", "w");
while (fgets(line, LINE_LENGTH, input_file) != NULL)
{
remove_newline(line);
char *currentWord;
currentWord = strtok(line, "\n ,.-");
while (currentWord != NULL)
{
if (strcmp(search, currentWord)==0 && replace != " ")
{
printf("%s\n", currentWord);
fprintf (write_file, "%s\n", replace);
}
else {
fprintf(write_file, "%s\n", currentWord);
}
currentWord = strtok(NULL, "\n ,.-");
}
fclose (write_file);
fclose(input_file);
//// ВСЁ
#include <stdio.h>
#include<stdlib.h>
#include <string.h>
#define LINE_LENGTH 5000
void remove_newline(char *str)
{
int len =strlen (str);
if (len>0 &&str[len -1] == '\n')
str[len -1] = '\0';
}
int main(int argc, char **argv)
{
char search[50];
printf("\n What would you like to search for? ");
fgets(search,50,stdin);
int slen = strlen(search);
printf("%s\n", search);
remove_newline(search);
char replace[50];
printf("Replace word?");
fgets(replace, 50, stdin);
FILE *input_file = fopen("sentences_test.txt", "r");
char line [LINE_LENGTH];
FILE *write_file = fopen("replaced.txt", "w");
while (fgets(line, LINE_LENGTH, input_file) != NULL)
{
remove_newline(line);
char *currentWord;
currentWord = strtok(line, "\n ,.-");
while (currentWord != NULL)
{
if (strcmp(search, currentWord)==0 && replace != " ")
{
printf("%s\n", currentWord);
fprintf (write_file, "%s\n", replace);
}
else {
fprintf(write_file, "%s\n", currentWord);
}
currentWord = strtok(NULL, "\n ,.-");
}
fclose (write_file);
fclose(input_file);
}
return 0;
}
пример вывода is search: заменено на: REPLACE!
TEXT FILE: C is REPLACE!
наиболее часто используемый язык программирования для написания операционных систем Первая операционная система, написанная на C is Unix Более поздние операционные системы, такие как Linux, были все написаны на C Мало того, что C REPLACE!
язык операционных систем - это REPLACE!
предшественник и вдохновение почти для всех REPLACE!
самых популярных языков высокого уровня, доступных сегодня. Фактически Perl PHP Python и Ruby все написаны в C
ФАЙЛ ЕСТЬ БОЛЬШЕ, ЧЕМ ЭТО