Загрузка...

C problem.

Thread in C/C++ created by Muha665161 Nov 29, 2022. 232 views

  1. Muha665161
    Muha665161 Topic starter Nov 29, 2022 67 Dec 3, 2019
    [IMG]

    Функцию я написал, а что делать дальше не знаю

    #include <stdio.h>
    #include <stdlib.h>
    #include <Windows.h>
    #include <locale>


    int index(const char* str, const char c)
    {
    int index = 0;
    const char* p = str;
    while (p)
    {
    if (*p == c) return index;
    index++;
    p++;
    }
    return -1;
    }


    int main()
    {
    setlocale(LC_ALL, "ru");
    char str[255] = { 0 };
    char c;
    printf("Enter string = ");
    SetConsoleCP(1251);
    fgets(str, 255, stdin);
    printf("Enter Symbol = ");
    scanf_s("%c", &c);
    SetConsoleCP(866);
    printf("Индекс первого элемента = %d", index(str, c));
    return 0;
    }

     
  2. M1h4n1k
    M1h4n1k Nov 29, 2022 Ответы skysmart - t.me/SkyAnsBot 272 May 4, 2021
    запустить?
     
    1. Muha665161 Topic starter
      M1h4n1k, Выводит значение только первого индекса, а мне надо всех
    2. vtlstolyarov
      Muha665161, поменяй сигнатуру фнкции чтобы принимала не только строку и сивол но и
      int offset
      - отступ от начала строки с которого надо начинать поиск. тогла после каждого вызова продолжаешь вызывать с новым отступом пока функция не вернет -1

      ну или можно сигнутуру оставить как есть, но каждый раз передавать сдвинутый указатель
  3. KinetiK
    KinetiK Nov 29, 2022 20,066 Jan 18, 2020
    while(index(str) != -1){
    int result = index(str);
    printf(index);
    str += index + 1;
    }
     
    1. vtlstolyarov
      KinetiK, хуйню написал - прога просто зависнет потому что будет постоянно одно и тоже находить
    2. KinetiK
    3. vtlstolyarov
      KinetiK, ты изменил свой код после того как я написал сообщение, так что я был прав
    4. View the next comments (2)
  4. KinetiK
    KinetiK Nov 29, 2022 20,066 Jan 18, 2020
    ты обрезаешь строку каждый раз на индекс найденного символа
     
  5. Joker9019
    Joker9019 Dec 5, 2022 Banned 3 Nov 27, 2022
    Muha665161,
    C
    ```c++

    #include <iostream>

    #include <string>

    using namespace std;

    int findIndex(string str, char ch)

    {

    for (int i = 0; i < str.length(); i++)

    {

    if (str[i] == ch)

    return i;

    }

    return -1;

    }

    int main()

    {

    cout << "Enter string: ";

    string str;

    cin >> str;

    cout << "Enter character: ";

    char ch;

    cin >> ch;

    int index;

    do

    {

    index = findIndex(str, ch);

    if (index != -1)

    {

    cout << index << endl;

    str.erase(index, 1);

    }

    } while (index != -1);

    return 0;

    }

    ```
     
Top
Loading...