Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 27.11.2010
Сообщений: 11
1

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

06.12.2010, 01:22. Просмотров 817. Ответов 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 . Можете , пожалуйста , откомментить данную прогу . Заранее благодарен .
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.12.2010, 01:22
Ответы с готовыми решениями:

Работа с файлами. Прокомментировать код
Объясните кто-нибудь пожалуйста более подробно следующие строчки кода. Тема...

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

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

Работа со строками. Функции работы со строками
Дана строка символов. В заданном тексте определить позицию первой точки ‘ . ‘.

1
4849 / 3270 / 466
Регистрация: 10.12.2008
Сообщений: 10,569
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() означает продолжать работать с той же строкой
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.12.2010, 10:52

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Прокомментировать код
#include &lt;iostream.h&gt; #include &lt;conio.h&gt; #include &lt;stdio.h&gt; #include &lt;iomanip.h&gt; #include...

Прокомментировать код
#include &lt;iostream&gt; #include &lt;string&gt; using namespace std; void sort(int* m, int n); ...

Прокомментировать код
помогите понять этот код int main(){ const int PASSWORD_LENGTH=10; const char *...

Прокомментировать код
#include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;string&gt; using namespace std; ifstream in...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

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