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

strchr - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
Dark2012
0 / 0 / 0
Регистрация: 03.12.2011
Сообщений: 43
03.12.2011, 18:48     strchr #1
помогите пожалуйста реализовать данную функцию "вручную"..

и еще один вопросик.... есть символьный массив ну допустим {'1', '6', '4', '\0'}
каким образом из него сделать число 164 типа int ??
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.12.2011, 18:48     strchr
Посмотрите здесь:

C++ Функция strchr (Язык Си) -не выполняет=(
C++ функция strchr
Функция strchr C++
Объясните про strchr C++
создать функцию-аналог strstr, strchr C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dr.curse
 Аватар для dr.curse
386 / 342 / 16
Регистрация: 11.10.2010
Сообщений: 1,907
03.12.2011, 18:51     strchr #2
Цитата Сообщение от Dark2012 Посмотреть сообщение
и еще один вопросик.... есть символьный массив ну допустим {'1', '6', '4', '\0'}
каким образом из него сделать число 164 типа int ??
с помощю функции
C
1
atoi
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
03.12.2011, 19:08     strchr #3
C
1
2
3
4
5
6
7
8
char * mystrchr(const char * s, char c){
    if ( !s )
        return NULL;
    for ( ; *s; ++s )
        if ( *s == c )
            return (char*)s;
    return NULL;
}
Dark2012
0 / 0 / 0
Регистрация: 03.12.2011
Сообщений: 43
03.12.2011, 19:46  [ТС]     strchr #4
Спасибо)....

насчет atoi - интересует сам алгоритм ее работы, кароч как самому ее реализовать?
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
03.12.2011, 19:52     strchr #5
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
31
32
33
34
#include <stdio.h>
 
int atoi (char *s)
{
    int n,znak,i=0;
    
    while (s[i]==' ')
        i++;
 
    if (!s[i])
        return 0;
 
    znak = ( s[i]=='-' ) ? -1 : 1 ;
 
    if ( s[i]=='+' || s[i]=='-' )
        i++;
 
    for (n=0; s[i] >= '0' && s[i] <= '9' ; i++)
        n = 10*n + (s[i] - '0') ;
 
    return znak * n ;
}
 
 
 
int main(int argc, char* argv[])
{
    char ss[]={"  +125ds "};
 
    printf ("\n %d\n", atoi (ss) );
 
    getchar ();
    return 0;
}
Dark2012
0 / 0 / 0
Регистрация: 03.12.2011
Сообщений: 43
03.12.2011, 20:05  [ТС]     strchr #6
n = 10*n + (s[i] - '0') ; - можешь объяснить?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.12.2011, 20:16     strchr
Еще ссылки по теме:

C++ Вывести на экран все различные буквы строки с использованием strchr
Сбой при нулевой выдаче у функций strchr и strstr C++
C++ Найти первые вхождения символов (функции strchr(), tolower())

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

Или воспользуйтесь поиском по форуму:
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
03.12.2011, 20:16     strchr #7
Цитата Сообщение от Dark2012 Посмотреть сообщение
n = 10*n + (s[i] - '0') ; - можешь объяснить?
- берем символ и получаем его и получаем цифру
- сдвигаем число влево на десятку (справа остался ноль)
- добавляем к числу цифру
Yandex
Объявления
03.12.2011, 20:16     strchr
Ответ Создать тему
Опции темы

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