Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 02.11.2021
Сообщений: 102
1

Найти вхождение одного из символов, который встретится в строке первым

20.05.2022, 09:17. Показов 1151. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Необходимо найти вхождение одного из символов, который встретится в строке первым : !,:./ и сместить указатель на эту позицию. Как это сделать?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.05.2022, 09:17
Ответы с готовыми решениями:

Найти трёхзначное число, которое первым встретится дважды
Найти трёхзначное число, которое первым встретится дважды Условие задачи 1. Дан ряд чисел ln2,...

В каждой строке для всех слов, которые встречаются в строке больше одного раза, оставить только первое вхождение
Народ, помогите Нужно в каждой строке для всех слов, которые встречаются в строке больше одного...

B данной строке найти самую длинную последовательность символов, которые равны первым символам строки, располо
B данной строке найти самую длинную последовательность символов, которые равны первым символам...

В заданной строке найти самую большую последовательность символов, Которые равняются первым символам ряда(по условию)
В заданной строке найти самую большую последовательность символов, Которые равняются первым...

8
447 / 323 / 129
Регистрация: 18.07.2017
Сообщений: 1,454
20.05.2022, 10:54 2
Лучший ответ Сообщение было отмечено SAVCHink как решение

Решение

C
1
2
3
4
5
6
7
8
9
10
11
12
13
const char* src; // строка
const char* sep = ": !,:./";
 
char* value = src + strlen(src);
char* tmp;
 
while(*sep){
    tmp = strchr(src, *sep);
    if(value < tmp)
        value = tmp;
    
    sep++;
}
0
Нарушитель
79 / 75 / 16
Регистрация: 12.01.2022
Сообщений: 901
20.05.2022, 11:15 3
Лучший ответ Сообщение было отмечено SAVCHink как решение

Решение

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <stdio.h>
 
#define delim ":!,:.-/\\"
 
int 
main(void) {
    
    char string[] = "Ona skazala/ zabiray menya skorey - 18 mne uzhe!";
    char* position = string;
    char count = 0;
    
    
    for(int i = 0; count < 1 && string[i] != '\0'; i++) {
        for(int j = 0; delim[j] != '\0'; j++) {
            if(string[i] == delim[j]) {
                count = 1;
                break;
                
            }
        }
        
        position += 1; 
    }
 
        position -= 1;
    
    printf("%s", position);
 
    return 0;
}
0
0 / 0 / 0
Регистрация: 02.11.2021
Сообщений: 102
20.05.2022, 11:24  [ТС] 4
а если необходимо до конца строки продолжать эту процедура поиска символов, проделывать с ними какую-то операцию и переходить к следующему символу?
0
Нарушитель
79 / 75 / 16
Регистрация: 12.01.2022
Сообщений: 901
20.05.2022, 11:54 5
assemberist, чёт не работает твой пример.
Цитата Сообщение от SAVCHink Посмотреть сообщение
а если необходимо до конца строки продолжать эту процедура поиска символов, проделывать с ними какую-то операцию и переходить к следующему символу?
один вопрос - одна тема.
0
447 / 323 / 129
Регистрация: 18.07.2017
Сообщений: 1,454
20.05.2022, 14:22 6
Цитата Сообщение от SAVCHink Посмотреть сообщение
а если необходимо до конца строки продолжать эту процедура поиска символов, проделывать с ними какую-то операцию и переходить к следующему символу?
Если тебе не нужны сами символы - разделители, то можешь strtok()-ом ломать строку.
0
0 / 0 / 0
Регистрация: 02.11.2021
Сообщений: 102
20.05.2022, 14:46  [ТС] 7
а тогда нужно чтобы strtok принимала несколько знаков препинания. Так разве можно сделать? Ведь это функция, принимающая 2 аргумента
0
2528 / 1247 / 460
Регистрация: 08.11.2016
Сообщений: 3,428
20.05.2022, 14:56 8
SAVCHink, strtok первым параметром принимает строку которую будет делить, а вторым строку с разделителями.
0
447 / 323 / 129
Регистрация: 18.07.2017
Сообщений: 1,454
20.05.2022, 15:59 9
Цитата Сообщение от Гай Посмотреть сообщение
чёт не работает твой пример
Забыл что strchr() может еще и NULL вернуть. Надо просто проверку на него впихнуть на 9 строку.
0
20.05.2022, 15:59
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.05.2022, 15:59
Помогаю со студенческими работами здесь

Найти символ первой строки, который первым не совпал с одним из символов второй строки. Вывести слово, в которое входит этот символ
Заданы 2 строки, состоящие из слов, разделенных пробелами. Определить местоположение символа первой...

Как вывести на экран в виде одного сообщения сведения об автомобиле, который в списке является первым
Форма сообщения : ФИО : значение Госномер: значение Марка: значение Цвет : Значение

Выбрать в каждой строке матрицы из символов символ с наименьшим кодом и поставить его первым в строке матрицы.
Помогите написать программую Дана матрица размером M x N, состоящая из символов. Выбрать в...

Оставить в строке только первое вхождение каждого символа. Взаимный порядок оставленных символов сохранить
Решил данную задачу так: //Оставить в строке только первое вхождение каждого символа. Взаимный...

Строки: Дана последовательность символов(строка). Если какой-то элемент встречается в ней более одного раза, оставить только первое вхождение
помогите решить.. Дана последовательность символов(строка). Если какой-то элемент встречается в ней...

В строке определить количество символов между первым и вторым двоеточием ':'
Затрудняюсь понять, как запихнуть в условие чтобы сначала проверял после первого двоеточия (считал...

Найти вхождение в строке
Есть сть 3 строчки и необходимо сверить каждую из них на наличие совпадение. Что за функция в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru