Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
sergkhit
0 / 0 / 0
Регистрация: 15.09.2012
Сообщений: 21
#1

Осуществить поиск в строке первого вхождения указанного символа (Маленькая доработка) - C++

15.12.2012, 22:56. Просмотров 1270. Ответов 4
Метки нет (Все метки)

Задание: Осуществить поиск в строке первого вхождения указанного символа.

C++
1
2
3
4
5
6
7
8
9
#include <stdio.h>
#include <string.h>
#include <conio.h>
int main()
{
char *str = "world";
printf("'r' is at position: %d\n", (strchr(str, 'r')-str));
return 0;
}
Нужно сделать,чтоб если не было символа этого - выходило что-то типо "нету"
Зачем мы вычитаем и что в итоге получаем?(порядковый номер не подходит)
Помогите,пожалуйста, ответить хоть на один вопрос
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.12.2012, 22:56     Осуществить поиск в строке первого вхождения указанного символа (Маленькая доработка)
Посмотрите здесь:

C++ Поиск в заданной строке последнего вхождения заданного символа
Поиск вхождения символа C++
C++ Поиск в строке первого вхождения указанного символа - ошибки
C++ Осуществить конкатенацию двух файлов за счёт создания третьего файла (Маленькая доработка)
C++ Определить позицию первого вхождения в заданную строку какого-либо символа
C++ Функция, определяющая позицию самого первого вхождения заданного символа в исходную строку
C++ Функция разбивает строку на две части: до первого вхождения заданного символа и после него
C++ Как проверить в строке все вхождения символа?
C++ Написать программу разбиения строки на две части: до первого вхождения заданного символа и после него
C++ Строки: найти порядковые номера первого и последнего вхождения символа x
C++ Заменить все вхождения первого символа в массив на второй символ
Рразделение строки на две части до первого вхождения заданного символа и после него C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
v.a.l.i.d
412 / 377 / 10
Регистрация: 21.09.2012
Сообщений: 913
15.12.2012, 23:29     Осуществить поиск в строке первого вхождения указанного символа (Маленькая доработка) #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include "stdafx.h"
#include "iostream"
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    char *str = "world";
 
    if (strchr(str, 'r') != NULL)
        cout << "'r' is at position: " << strchr(str, 'r') << endl;
    else
        cout << "No" << endl;
                
    system("pause");            
    return 0;                   
}
sergkhit
0 / 0 / 0
Регистрация: 15.09.2012
Сообщений: 21
16.12.2012, 01:00  [ТС]     Осуществить поиск в строке первого вхождения указанного символа (Маленькая доработка) #3
а можете на си написать?
v.a.l.i.d
412 / 377 / 10
Регистрация: 21.09.2012
Сообщений: 913
16.12.2012, 10:44     Осуществить поиск в строке первого вхождения указанного символа (Маленькая доработка) #4
Не смогу. Я очень плохо знаю си
ValeryS
Модератор
6485 / 4951 / 455
Регистрация: 14.02.2011
Сообщений: 16,396
16.12.2012, 10:57     Осуществить поиск в строке первого вхождения указанного символа (Маленькая доработка) #5
Цитата Сообщение от sergkhit Посмотреть сообщение
Зачем мы вычитаем и что в итоге получаем?(порядковый номер не подходит)
Смотри
строка str допустим находится по адресу 100
strchr(str, 'r') ишет букву r
Функция strchr() возвращает указатель на местонахождение первого совпадения с символом c в строке s ... а если символ не найден, то возвращают NULL.
нашла дала адрес 102(третья буква в слове "world")
теперь вычитаем из 102 (адрес буквы)-100(адрес начала строки) и получаем позицию буквы 2



Цитата Сообщение от sergkhit Посмотреть сообщение
Нужно сделать,чтоб если не было символа этого - выходило что-то типо "нету"
C
1
2
3
4
if(strchr(str, 'r')==NULL)
  printf("No");
else
  printf("'r' is at position: %d\n", (strchr(str, 'r')-str));
Yandex
Объявления
16.12.2012, 10:57     Осуществить поиск в строке первого вхождения указанного символа (Маленькая доработка)
Ответ Создать тему
Опции темы

Текущее время: 18:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru