Консультация № 176879
24.02.2010, 00:46
0.00 руб.
0 2 1
Считать строку из файла input.txt (пример: компьютер не может думать) и вывести список символов в файл output.txt, хотя бы раз встречающихся в строке. Например, для строки 'Привет в обед' может быть выведено 'П', 'р', 'и', 'в', 'е', 'т', ' ' (пробел), 'о', 'б', 'д'.

Обсуждение

Неизвестный
24.02.2010, 09:32
общий
это ответ
Здравствуйте, Ананьев Рудольф Олегович.
Программа для стандарта ANSI. Для поиска символа используется стандартная функция strchr. Если она возвращает текущую позицию в строке (указатель p), то символ встретился в первый раз. Входной файл должен находится в текущем каталоге и состоять из одной строки символов (с завершающим переходом строки).

Приложение:
#include <stdio.h>
#include <string.h>

int main()
{
char string[80] = {'\n'}; // инициализация пустой строки
FILE* in = fopen("input.txt", "r"); // открытие входного файла
if (in == 0)
printf("Input error");
else
{
fgets(string, 79, in); // прочитали строку из входного файла
fclose(in);
}
FILE* out = fopen("output.txt", "w"); // открытие выходного файла
if (out == 0)
{
printf("Output error");
}
else
{
char* p = string;
while (*p != '\n')
{
if (strchr(string, *p) == p)
fprintf(out, "'%c' ", *p); // вывод нового символа в файл
++p;
}
fclose(out);
}
return 0;
}
5
Спасибо большое))
Неизвестный
25.02.2010, 15:33
общий
coremaster1:
Здравствуйте!
Программа работает, но в выходном файле выводит лишние символы: пробелы и кавычки (' ' ')
как можно это исправить?
помогите пожалуйста.

мне сказали что нужно исправить вот в этом месте:
if (strchr(string, *p) == p)
fprintf(out, "'%c' ", *p); // вывод нового символа в файл
++p;
}
Форма ответа