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

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

Войти
Регистрация
Восстановить пароль
 
vlad135642
0 / 0 / 0
Регистрация: 27.11.2010
Сообщений: 11
#1

Работа со строками - прокомментировать код - C++

06.12.2010, 01:22. Просмотров 689. Ответов 1
Метки нет (Все метки)

На просторах интернета нарыл данную прогу :
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include "stdafx.h"
#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <locale>
#include <ctype.h>
 
int main()
{
char s[] = "this ais the testa for acid burn: star, anna";
char *delimiters = " :,.";
char *result = NULL;
result = strtok(s, delimiters);
while(result) 
{
if(result[0] == 'a') 
printf("%s ", result);
result = strtok(NULL, delimiters);
}
_getch();
}
Меня очень интересует логика этой проги , особенно функция strtok . Можете , пожалуйста , откомментить данную прогу . Заранее благодарен .
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.12.2010, 01:22     Работа со строками - прокомментировать код
Посмотрите здесь:

Работа с указателями - прокомментировать код - C++
ваще нефига не понятно что означает каждая строка #include &lt;conio.h&gt; #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; float f(float fb,float...

Работа с файлами. Прокомментировать код - C++
Объясните кто-нибудь пожалуйста более подробно следующие строчки кода. Тема http://www.cyberforum.ru/cpp-beginners/thread591051.html ...

Работа со строками - разобрать код - C++
разбираю сейчас работу со строками и попался такой код программы: #include &lt;stdio.h&gt; #include &lt;string.h&gt; int main() { ...

Прокомментировать код - C++
Как это работает? #include &lt;QDebug&gt; int main() { int mass; mass = 1; mass = 2;

Прокомментировать код - C++
#pragma hdrstop #include &lt;conio.h&gt; #include &lt;cmath&gt; #include &lt;iostream&gt; using namespace std; int main() { int k =...

Прокомментировать код - C++
#include &lt;iostream&gt; using namespace std; static const int N = 1000; int main() { int i, a; for (i = 2; i &lt; N; i++)...

Прокомментировать код - C++
Здравствуйте, хотелось бы спросить у старейшин, что делают каждый из блоков программы, просто самому трудно понять #include &lt;cmath&gt; ...

Прокомментировать код - C++
Добрый день. Для тех у кого времени хватает и нечем заняться, просьба прокомментировать след. код : // A simple computerized telephone...

Прокомментировать код - C++
#include &quot;stdafx.h&quot; #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; typedef unsigned short int word; typedef unsigned int dword; ...

Прокомментировать код - C++
#include &quot;stdafx.h&quot; #include&lt;iostream&gt; #include&lt;math.h&gt; #include &lt;stdlib.h&gt; using namespace std; int main() { double eps,...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
accept
4821 / 3241 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
06.12.2010, 10:52     Работа со строками - прокомментировать код #2
strtok - string tokens
разделяет строку s на лексемы, разделённые любым символом из delimeters
strtok производит изменение строки, превращая разделители в строке в нуль-символы
когда неразделителей в строке не остаётся, она возвращает NULL

проблемы со strtok() начинаются, когда хочешь две строки одновременно нарезать, так как она хранит что-то вроде статического указателя внутри

Добавлено через 5 минут
C
1
2
3
4
5
6
    result = strtok(s, delimiters);
    while (result) {
        if (result[0] == 'a')
            printf("%s ", result);
        result = strtok(NULL, delimiters);
    }
пока в строке s есть слова, брать слово
брать первую букву слова
если первая буква - 'a', выводить слово

NULL в strtok() означает продолжать работать с той же строкой
Ответ Создать тему
Опции темы

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