Строка заполняется и выводится, а функция не работает - C (СИ)

Узнай цену своей работы

Формулировка задачи:

добрый день)) у меня такая проблемка, программа компилируется, изначально строка заполняется и выводится, а функция не работает, не знаю, где я там напортачила и чего
//  opredelitj skoljko raznih simvolov v stroke (simvoli vivesti)
#include<stdio.h>
#include<string.h>
#define N 600
// vivod unikaljnih simvolov
void Print(char *s);//prototip funkcii

//zapolnenie stoki, na4alo ispolnenija programmi
int main()
{
    char c;//peremennajan dlja vvedennogo simvola
    char stroka[N];//sozdaetsja massiv char
    int i=0;//inicializacija s4et4ika
    printf("*.variant");
    printf("\n");
    puts("\nvvedite stroku simvolov:");
    while((c=getchar())!='\n')
    {
                              stroka[i++]=c;
                              }//konec cikla while
                              
                              stroka[i]='\0';//ograni4itj stroku
                              
                              puts("\nStroka kotoruju vi vveli:");
                              printf("\n");
                              puts(stroka);
                              system("pause");
                              return 0;
                              }//konec main
  void Print(char *s)                            
                              {
   int k, count[256] = {0};
   for (k = 0; s[k]; k++)
      count[s[k]]++;
   for (k = 0; s[k]; k++)
      if (count[s[k]] == 1)
         printf("%c\n", s[k]);
         system("pause");
}//konec funkcii

Решение задачи: «Строка заполняется и выводится, а функция не работает»

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;
}

Объяснение кода листинга программы

  1. Подключение необходимых библиотек: <stdio.h> и <string.h>.
  2. Объявление переменных: char buf[BUFSIZ] и *p;
  3. Вход в цикл while, который будет выполняться до тех пор, пока пользователь не введет пустую строку.
  4. Внутри цикла происходит вывод сообщения String: и считывание строки с помощью функции scanf, введенная строка сохраняется в переменной buf.
  5. После успешного считывания строки, происходит вывод сообщения Singles: и итерация по символам введенной строки.
  6. Для каждого символа проверяется, является ли он уникальным в строке с помощью функции strchr. Если символ является уникальным, он выводится на экран.
  7. После вывода всех уникальных символов, происходит переход к следующей итерации цикла.
  8. По завершению цикла, программа завершается с возвратом значения 0.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.364 из 5
Похожие ответы