Вывод разных символов строки - C (СИ)
Формулировка задачи:
Помогите пожалуйсто с задачко! Задание: пользователь вводит строку и программа выдает ему только различные символы строки. Я пробую сделать но получается что-то не то. На форуме есть похожее, но используя буффер, а мне надо решение без него(
Вот код программы:
Заранее спасибо! Надеюсь кто-нибудь поможет((
# include <stdio.h>
# include <string.h>
#define Size 200
int main()
{
char input_string[Size], output_string[Size];
int string_length, i,j,k, count=0;
system("cls");
puts("Ievadiet virkni, kuru velaties apstradat: ");
gets(input_string);
string_length=strlen(input_string);
for(i=0;i<string_length-1;i++)
{
for(j=i+1;j<string_length;j++)
{
if(input_string[i]!=input_string[j])
{
output_string[count]=input_string[i];
count++;
}
}
}
printf("%s",output_string);
return(0);
}Решение задачи: «Вывод разных символов строки»
textual
Листинг программы
#include <stdio.h>
#include <string.h>
int main(void){
char buf[BUFSIZ], *p;
while ( printf("String: ") && scanf("%[^\n]%*c", buf) == 1 ){
printf("Singles: ");
for ( p = buf; *p; ++p )
if ( strchr(buf, *p) == p )
printf("%c", *p);
printf("\n");
}
return 0;
}
Объяснение кода листинга программы
В этом коде происходит следующее:
- Объявляются две переменные:
bufтипаcharиpтипаchar*(указатель наchar). - В цикле
whileпроисходит следующее:- Выводится приглашение для ввода строки
String:. - Пользователь вводит строку в буфер
buf. - Буфер
bufочищается.
- Выводится приглашение для ввода строки
- В цикле
forпроисходит следующее:- Переменная
pинициализируется значениемbuf. - Для каждого символа в
bufвыполняется проверка: если символ является уникальным (то есть, не повторяется вbuf), то он выводится на экран.
- Переменная
- Код повторяется до тех пор, пока пользователь не введет пустую строку.
- В конце программы возвращается 0, что означает успешное завершение работы программы.