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

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

Войти
Регистрация
Восстановить пароль
 
Ded_Vasilij
231 / 213 / 15
Регистрация: 01.09.2012
Сообщений: 2,103
#1

strlen - C++

02.04.2013, 00:53. Просмотров 440. Ответов 4
Метки нет (Все метки)

Или я дурак,или лыжи не едут??? Люди добрые, скажите чего не так. Не могу определить длину строки. Хоть вручную считай... вот код
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
int polinom::analiz( char * stroka)
{
    int size = 0;
    int i = 0;
    int len = strlen(stroka);  // вот здесь мой код радостно падает
    cout << "dd - "<<len<<endl;
    for ( i= 0; i < len; i++)
        if (stroka[i] == '+' || stroka[i] == '-')
            size++;
    char **ss = new char*[size];
    for (int j = 0; j < size; j++)
        ss[j] = new char[255];
    i=0;
    char* s = strtok(stroka,"+-");
    
    while(s != NULL)
    {       
        s = strtok(0,"+-");
        cout << "s = " << s << endl;
        ss[i] = s;
        cout <<"ss[i] = " << ss[i] << endl;
        i++;        
    }
    return 0;
}
Добавлено через 28 секунд
а я пошел спать...
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.04.2013, 00:53
Здравствуйте! Я подобрал для вас темы с ответами на вопрос strlen (C++):

strlen - C++
Есть ли подобие strlen, но для других типов данных? int*, short* и тп?

strlen - C++
добрый вечер. пытаюсь придумать менее затратный strlen) вопрос появился: максимальный размер строки без выделения в куче и с выделением...

strlen()+1 - C++
Зачем использовать strlen в данном случае? char s; get.cin(s,strlen(s)+1);

Не работает strlen - C++
сабж не могу взять длину строки функция определения возвращает не понятные значения #include &lt;stdlib.h&gt; #include &lt;stdio.h&gt; ...

своя strlen - C++
#include&lt;iostream.h&gt; int strlen(char *string) { int lengh=0; while(*string++) lengh++; return ++lengh; } ...

функция strlen - C++
#include &quot;stdafx.h&quot; #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;string.h&gt; #define maxline 1000 // for s #define eof -1...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Venzo
125 / 123 / 4
Регистрация: 03.07.2011
Сообщений: 354
02.04.2013, 01:26 #2
строка точно заканчивается двоичным нулем? И с какой ошибкой код падает?
0
alsav22
5419 / 4815 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
02.04.2013, 07:09 #3
Надо видеть, что есть char *stroka.
0
Tulosba
:)
Эксперт С++
4396 / 3239 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
02.04.2013, 14:11 #4
Цитата Сообщение от alsav22 Посмотреть сообщение
Надо видеть, что есть char *stroka.
Скорее всего там память засралась и strlen() убегает за пределы разрешенной памяти. В итоге - access violation.
Т.е. надо смотреть алгоритм формирования строки, как минимум.
0
Ded_Vasilij
231 / 213 / 15
Регистрация: 01.09.2012
Сообщений: 2,103
02.04.2013, 14:27  [ТС] #5
Люди - а ларчик просто открывался, проблема была в другом месте (смотри лексический анализ)
Всем спасибо
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.04.2013, 14:27
Привет! Вот еще темы с ответами:

Проблема с strlen - C++
Доброго времени суток. При подсчете длин строки strlen считает до 1 пробела, в итоге в 2 строке только 1 слово из 1 строки. В чем может...

C++ <cstring> strlen() - C++
Народ, может ли функция strlen() обрабатывать тип не const char, а char ? компилятор ошибку выдаёт str.insert(Position_Begin(c),...

Объясните разницу в strlen() - C++
Вот код: char ch = &quot;Hello, World!&quot;; char ch2 = {'H','e', 'l', 'l', 'o', ',', ' ', 'w', 'o', 'r', 'l', 'd', '!'}; // тоже самое...

Почему не работает strlen()??? - C++
Код программы: #include&lt;string&gt; #include&lt;iostream&gt; using namespace std; int main(){ string s; getline(cin, s, '\n'); ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
02.04.2013, 14:27
Ответ Создать тему
Опции темы

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