Модераторы: bsa

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Определение символа в строке 
:(
    Опции темы
Salatovec
Дата 4.7.2009, 14:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 9.1.2008

Репутация: нет
Всего: -1



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

string "Машина";

Как мне определить, есть ли в ней буква "а" или нет? Заранее спасибо!
PM MAIL   Вверх
Albor
Дата 4.7.2009, 14:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 589
Регистрация: 28.2.2009

Репутация: 2
Всего: 9



strchr(mystring,'a'); Вернёт 0, если а нет в строке.
PM MAIL ICQ   Вверх
Cheloveck
Дата 4.7.2009, 14:50 (ссылка)  | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1578
Регистрация: 26.7.2008
Где: Тула

Репутация: 5
Всего: 32



Строка есть массив символов. Как насчёт того, чтобы перебрать все символы по очереди и проверить соответствие?
Код

std::string str("Маш....ина");
int len = str.length();
for( int i = 0; i < len; i++ )
{
     if( str[i] == 'а')
     {
         // Необходимые действия.
         break;
     }
}



--------------------
user posted image
PM Jabber   Вверх
andrew_121
Дата 4.7.2009, 15:11 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 10
Всего: 33



Cheloveck, Ээээ...вы чё?!!!
Это объект std::string, для этого есть алгоритмы и итераторы!


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
Salatovec
Дата 4.7.2009, 15:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 9.1.2008

Репутация: нет
Всего: -1



Спасибо всем большое, мне нужно было лишь strchr(mystring,'a'), но возник еще вопрос, как узнать колличество этих символов в строке и каким по счету идет символ?  
PM MAIL   Вверх
andrew_121
Дата 4.7.2009, 15:48 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 10
Всего: 33



Salatovec, 
Код

std::count(...)
std::count_if(...);


Добавлено через 1 минуту и 21 секунду
Цитата(Albor @  4.7.2009,  14:49 Найти цитируемый пост)
strchr(mystring,'a'); Вернёт 0, если а нет в строке. 

Не ноль! А NULL!!!!

Добавлено через 2 минуты и 25 секунд
Цитата(Salatovec @  4.7.2009,  14:22 Найти цитируемый пост)
не пинайте ногами ибо думаю, что такой вопрос здесь был не раз, но ответа на него я не нашел...

Наглая ложь! smile 


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
Salatovec
Дата 4.7.2009, 15:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 9.1.2008

Репутация: нет
Всего: -1



Цитата

Наглая ложь!  

С чего вы так решили?
PM MAIL   Вверх
Albor
Дата 4.7.2009, 16:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 589
Регистрация: 28.2.2009

Репутация: 2
Всего: 9



Цитата(andrew_121 @  4.7.2009,  15:48 Найти цитируемый пост)
Не ноль! А NULL!!!!

А разве в с++ они отличаются по абсолютной величине?

PM MAIL ICQ   Вверх
andrew_121
Дата 4.7.2009, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 10
Всего: 33



Salatovec, С того, что по первому же запросу, выдало кучу тем.
Эта первая: http://forum.vingrad.ru/topic-188378.html

Добавлено через 2 минуты и 33 секунды
Цитата(Albor @  4.7.2009,  16:04 Найти цитируемый пост)
А разве в с++ они отличаются по абсолютной величине?

Ни чем. Кроме того что, при работе с массивами, 0 это число, а NULL это состояние указателя. А это уже разные вещи.


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
Albor
Дата 4.7.2009, 16:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 589
Регистрация: 28.2.2009

Репутация: 2
Всего: 9



Вот как определено в VS
Код

/* Define NULL pointer value */

#ifndef NULL
#ifdef __cplusplus
#define NULL    0
#else
#define NULL    ((void *)0)
#endif
#endif

PM MAIL ICQ   Вверх
andrew_121
Дата 4.7.2009, 16:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 10
Всего: 33



Цитата(Albor @  4.7.2009,  16:09 Найти цитируемый пост)
Вот как определено в VS

Естественно.


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
Albor
Дата 4.7.2009, 16:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 589
Регистрация: 28.2.2009

Репутация: 2
Всего: 9



Цитата(andrew_121 @  4.7.2009,  16:11 Найти цитируемый пост)
Естественно. 

Ну, так в с++ NULL - это 0, иначе - это указатель на void имеющий значение 0. Если я пишу на с++, то я вправе утверждать что понятия NULL и 0 тождественны. 
PM MAIL ICQ   Вверх
andrew_121
Дата 4.7.2009, 16:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 10
Всего: 33



Код

#include <string>
#include <iostream>
#include <algorithm>

int main(int argc, const char **argv) {
   std::string str("blablabla");
   std::string::iterator it;

   it = std::find(str.begin(), str.end(), 'a');
   if ( it == str.end() ) {
      std::cout << "Not found\n";
   } else {
      std::cout << "Found at " << it - str.begin();
   }
   return 0;
}

Не проще ли так?


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
zim22
Дата 4.7.2009, 16:41 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 29
Всего: 69



Цитата(Albor @  4.7.2009,  16:19 Найти цитируемый пост)
Если я пишу на с++, то я вправе утверждать что понятия NULL и 0 тождественны. 

Google C++ Style Guide рекомендует:
Цитата

Use 0 for integers, 0.0 for reals, NULL for pointers, and '\0' for chars.




--------------------
PM MAIL   Вверх
andrew_121
Дата 4.7.2009, 17:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 10
Всего: 33



Цитата(zim22 @  4.7.2009,  16:41 Найти цитируемый пост)
Google C++ Style Guide рекомендует:

Дай ссылку.


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0612 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.